root で X アプリケーションを起動

提供: ArchWiki
移動先: 案内検索

セキュリティ上の理由で、デフォルトでは root は root 以外のユーザーが起動した X サーバーに接続することができません。必要な場合 root から接続できるようにする方法がいくつか存在します。

安全な方法

安全な方法は単純な方法です。以下のような方法があります:

  • kdesu (KDE に含まれています):
$ kdesu name-of-app
  • gksu (GNOME に含まれています):
$ gksu name-of-app
  • bashrun (公式リポジトリに存在します):
$ bashrun --su name-of-app
  • sudo (インストールして visudo で設定が必要です):
$ sudo name-of-app
  • suxAUR (X のログイン情報を転送する su のラッパー)
$ sux root name-of-app

上記の方法はアプリケーションが終了したときに自動的に権限も消えるのでセキュリティのリスクを回避できます。

他の方法

以下の方法でも root からユーザーの X サーバーに接続することができますが、セキュリティ上の危険性が存在し、特に SSH を動作させている場合は危険です。

一時的に root のアクセスを許可

以下のコマンドは一時的に root など他のユーザーが X サーバーに接続することを許可します:

$ xhost +

また、以下のコマンドは接続を拒否します:

$ xhost -

もしくは以下のコマンドを使う方法もあります (X サーバーが TCP 接続を使用するように設定する必要があります):

$ xhost + localhost

永続的に root のアクセスを許可

方法 1

以下の行を /etc/pam.d/su/etc/pam.d/su-l に追加してください:

session         optional        pam_xauth.so

その後 susu - を使って root ユーザーに切り替えてください。

方法 2

/etc/profile に以下の行を追加してください:

export XAUTHORITY=/home/non-root-usersname/.Xauthority

上記の設定で root が root 以外のユーザーの X サーバーに永続的に接続できるようになります。

あるいは、接続するアプリを指定する場合 (例: kwrite):

export XAUTHORITY=/home/usersname/.Xauthority kwrite