別のユーザーでアプリを実行する
以前別のユーザーでコマンドを実行する方法や、Xサーバーのアクセスコントロールについて投稿しました。
それらを踏まえて、別のユーザーでアプリを実行してみます。
gksuコマンドとgksudoコマンド
「gksu」コマンドは、「su」コマンドと「sudo」コマンドのGUI版です。「gksudo」コマンドは、「sudo」コマンドのGUI版です。
シェルスクリプトでルートユーザーでアプリを実行する際によく使われます。
「gksu」コマンドが「su」コマンドと「sudo」コマンドのどちらを使うかは、オプションで指定できます。
オプションを指定しなかった場合、「sudo」コマンドが使われます。
この既定値は変更できます。
gksuとgksudoの違い
Ubuntuでは「gksudo」コマンドは「gksu」コマンドへのソフトリンクになっていますが、通常は「gksudo」コマンドを利用すると良いでしょう。「gksu」コマンドはrootユーザーのログインシェルを利用する時に使用するコマンド、という位置づけになっています。
使い方
gksu [-u ユーザー名] [オプション] [実行するコマンド][ ]は省略可能です。
実行するコマンドを省略した場合は、GUIが表示されます。
uオプション
コマンドを実行したいユーザー名を指定します。dオプション
デバッグ情報を表示します。kオプション
現在のユーザーの環境変数を保持します。lオプション
ログインシェル上でコマンドを実行します。pオプション
ユーザーが入力したパスワードを標準出力に出力します。シェルスクリプトでよく使われます。
mオプション
パスワード入力画面で表示するメッセージを指定します。wオプション
「su」コマンドを使います。このオプションは「gksu」コマンドで利用できます。
Sオプション
「sudo」コマンドを使います。このオプションは「gksu」コマンドで利用できます。
別のユーザーでアプリを実行する(GUI版)
ここでは試しにNautilusを別のユーザーである「Ubuntu2」ユーザーで起動してみます。「ubuntu」ユーザーでログインしています。
1.プログラム実行画面の表示
オプション指定をせずに「gksudo」コマンドを実行します。事前にXサーバーのアクセスコントロールに、該当するユーザーを追加しておいてください。
以下の画面が表示されます。
実行
実行するコマンドを入力します。ユーザーの指定
実行するユーザーをメニューから選択します。2.拡張オプションの設定
「詳細」ボタンを押すと以下の画面が表示され、拡張オプションの指定ができます。今回はいずれのオプションも指定しません。
ログインシェル
lオプションに相当します。環境変数を変更しない
kオプションに相当します。3.設定の確認
今回は以下のように入力しました。拡張オプションはすべてオフです。
「OK」ボタンをクリックします。
4.パスワードの入力
以下の画面が表示され、パスワードの入力が求められます。「sudo」コマンドが実行される場合、以下の画面が表示されます。
パスワードを入力して「OK」ボタンをクリックします。
5.アプリの起動
以下のようにNautilusが「ubuntu2」ユーザーで起動します。別のユーザーでアプリを実行する(CUI版)
同じようにNautilusを「ubuntu2」ユーザーで起動してみます。1.コマンドの実行
以下のコマンドを実行します。gksudo -u ubuntu2 nautilus