Waylandはグラフィックスードをサポートしていますか?

Waylandはグラフィックスードをサポートしていますか?

Xデスクトップでは、他のユーザー(ルートを含む)でGUIアプリケーションを使用またはgksudo実行します。sudo somegui私は最近(2018年初め)Waylandデスクトップではこれが不可能であることを最近発見しました。すべてのアプリケーションは現在デスクトップユーザーとして実行する必要があり、そのユーザーに制限された権限があります。

これは(設計上)Waylandの永続的な機能ですか、それともsu型の使用がまだ実装されていない拡張機能ですか?

私は好みや意見ではなく、文書化された説明(ロードマップ、デザインページ...)を探しています。

ベストアンサー1

これはWaylandの永続的な機能ですか(意図的)

いいえ、これはウェイランド契約とは何の関係もありません。これは実際に環境設定の問題です。

Waylandは名前がWAYLAND_DISPLAYXDG_RUNTIME_DIRただし、ルートにもアクセスできます。 (一部のアプリケーションでは、XDG_SESSION_TYPEどれが値を持つことができるかを検討するwaylandか、x11Xを使用するかWaylandを使用するかを決定します。)

sudoXDG_RUNTIME_DIRとを含むほとんどの環境変数を削除しますWAYLAND_DISPLAY

Waylandアプリケーションをrootとして実行できます。

sudo env XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR WAYLAND_SOCKET=$WAYLAND_SOCKET waylandapplication

または、短く設定して-EHほぼすべての環境変数を保存します(ただしHOMEに設定/root)。これにはDISPLAYXwaylandXAUTHORITYへのアクセスも含まれます。

sudo -EH application

ただし、rootとして実行されているアプリケーションに何かを書き込むと、XDG_RUNTIME_DIRユーザーアプリケーションのファイル権限の問題が発生する可能性があります。

しかし、グラフィカルアプリケーションをrootとして実行する際のセキュリティ問題は、X11よりもWaylandでははるかに少ない。

誤ってX11を使用しないようにするには、次の方法で実行できますDISPLAY

sudo -EH env DISPLAY=  waylandapplication

私は好みや意見ではなく、文書化された説明(ロードマップ、デザインページ...)を探しています。

これウェールランド文書言及しましたが、WAYLAND_DISPLAYそれについて何も見つかりませんでしたXDG_RUNTIME_DIR。しかし、すべてのWaylandシンセサイザー(参照実装を含む)westonXDG_RUNTIME_DIR

別の場所にいる場合、WAYLAND_DISPLAY同じWaylandディスプレイでユーザーのアプリケーションを実行するのに問題はありません。しかし、XDG_RUNTIME_DIR指定済みログインしたユーザーを制限し、ユーザーに関連付けられているソケットを含める必要があります。

$XDG_RUNTIME_DIRは、ユーザー固有の非必須ランタイムファイルと他のファイルオブジェクト(ソケット、名前付きパイプなど)を保存する相対ベースディレクトリを定義します。ディレクトリはユーザーが所有し、そのディレクトリへの読み取りおよび書き込みアクセス権を持つ唯一の人である必要があります。 Unixアクセスモードは0700でなければなりません。

Waylandで他のユーザーやルートを実行する問題は、XDG_RUNTIME_DIRWayland自体ではなく仕様に関連しています。任意のアクセスでカスタムを指定するとXDG_RUNTIME_DIR/tmpしたがって仕様に違反する)、すべてのユーザーがウェイランド表示を使用できるようになります。

今後は必要ありませんが、XDG_RUNTIME_DIR実装によって異なります。Waylandドキュメンタリー第4章:

Wayland 1.15以降、実装では、WAYLAND_DISPLAYをサーバーエンドポイントが受信する絶対パスに設定することで、ファイルシステム上の任意の場所にあるサーバーソケットエンドポイントをオプションでサポートできます。

おすすめ記事