Xデスクトップでは、他のユーザー(ルートを含む)でGUIアプリケーションを使用またはgksudo
実行します。sudo somegui
私は最近(2018年初め)Waylandデスクトップではこれが不可能であることを最近発見しました。すべてのアプリケーションは現在デスクトップユーザーとして実行する必要があり、そのユーザーに制限された権限があります。
これは(設計上)Waylandの永続的な機能ですか、それともsu型の使用がまだ実装されていない拡張機能ですか?
私は好みや意見ではなく、文書化された説明(ロードマップ、デザインページ...)を探しています。
ベストアンサー1
これはWaylandの永続的な機能ですか(意図的)
いいえ、これはウェイランド契約とは何の関係もありません。これは実際に環境設定の問題です。
Waylandは名前がWAYLAND_DISPLAY
。XDG_RUNTIME_DIR
ただし、ルートにもアクセスできます。 (一部のアプリケーションでは、XDG_SESSION_TYPE
どれが値を持つことができるかを検討するwayland
か、x11
Xを使用するかWaylandを使用するかを決定します。)
sudo
XDG_RUNTIME_DIR
とを含むほとんどの環境変数を削除しますWAYLAND_DISPLAY
。
Waylandアプリケーションをrootとして実行できます。
sudo env XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR WAYLAND_SOCKET=$WAYLAND_SOCKET waylandapplication
または、短く設定して-EH
ほぼすべての環境変数を保存します(ただしHOME
に設定/root
)。これにはDISPLAY
XwaylandXAUTHORITY
へのアクセスも含まれます。
sudo -EH application
ただし、rootとして実行されているアプリケーションに何かを書き込むと、XDG_RUNTIME_DIR
ユーザーアプリケーションのファイル権限の問題が発生する可能性があります。
しかし、グラフィカルアプリケーションをrootとして実行する際のセキュリティ問題は、X11よりもWaylandでははるかに少ない。
誤ってX11を使用しないようにするには、次の方法で実行できますDISPLAY
。
sudo -EH env DISPLAY= waylandapplication
私は好みや意見ではなく、文書化された説明(ロードマップ、デザインページ...)を探しています。
これウェールランド文書言及しましたが、WAYLAND_DISPLAY
それについて何も見つかりませんでしたXDG_RUNTIME_DIR
。しかし、すべてのWaylandシンセサイザー(参照実装を含む)weston
はXDG_RUNTIME_DIR
。
別の場所にいる場合、WAYLAND_DISPLAY
同じWaylandディスプレイでユーザーのアプリケーションを実行するのに問題はありません。しかし、XDG_RUNTIME_DIR
指定済みログインしたユーザーを制限し、ユーザーに関連付けられているソケットを含める必要があります。
$XDG_RUNTIME_DIRは、ユーザー固有の非必須ランタイムファイルと他のファイルオブジェクト(ソケット、名前付きパイプなど)を保存する相対ベースディレクトリを定義します。ディレクトリはユーザーが所有し、そのディレクトリへの読み取りおよび書き込みアクセス権を持つ唯一の人である必要があります。 Unixアクセスモードは0700でなければなりません。
Waylandで他のユーザーやルートを実行する問題は、XDG_RUNTIME_DIR
Wayland自体ではなく仕様に関連しています。任意のアクセスでカスタムを指定するとXDG_RUNTIME_DIR
(/tmp
したがって仕様に違反する)、すべてのユーザーがウェイランド表示を使用できるようになります。
今後は必要ありませんが、XDG_RUNTIME_DIR
実装によって異なります。Waylandドキュメンタリー第4章:
Wayland 1.15以降、実装では、WAYLAND_DISPLAYをサーバーエンドポイントが受信する絶対パスに設定することで、ファイルシステム上の任意の場所にあるサーバーソケットエンドポイントをオプションでサポートできます。