web-dev-qa-db-ja.com

この「xhost ...」コマンドは何をしますか?

このコマンドラインを理解するのを助けてください:

xhost +SI:localuser:lightdm

in この投稿の回答への参照 そして、より良い方法があるかどうかと、それが必要な理由を提案します。 manページからは多くを作ることができなかったので、それを簡単にするために、もう少し詳細な答えを期待しています。 (localuserを自分のユーザー名に置き換える必要がありますか?それはグループに追加するようなものですか?+は追加用ですが、SIまたはsiが理解できません!)

また、ユーザーが「接続を許可されるリスト」に追加される方法とその意味も説明してください。また、現在のリストを確認するにはどうすればよいですか?

7
precise

xhost +SI:localuser:lightdmは、lightdmユーザーが実行中のXサーバーにアクセスできるようにします。現在のXサーバーはDISPLAY環境変数で示されます。


manpage にはかなり良い説明があります:

   [+]name The given name (the plus sign is optional) is added to the list
           allowed to connect to the X server.  The name  can  be  a  Host
           name or a complete name (See NAMES for more details).
...
NAMES
   A complete name has the syntax ``family:name'' where the  families  are
   as follows:
...
   si        Server Interpreted
...
   the server interpreted address "si:localuser:username" can be  used  to
   specify a single local user. (See the Xsecurity(7) manual page for more
   details.)

そして Xsecurity manpage はこう言います:

SERVER INTERPRETED ACCESS TYPES
   The  sample  implementation   includes   several   Server   Interpreted
   mechanisms:
       IPv6                          IPv6 literal addresses
       hostname                      Network Host name
       localuser                     Local connection user id
       localgroup                    Local connection group id

少しコンテキストがあります:Xサーバーへのアクセスを許可するために一般的に使用される2つの方法があります。 1つは、クライアントが共有するXauthorityファイルを使用する方法で、サーバー側の設定をこれ以上行う必要はありません。もう1つはxhostリストを介したもので、構成はruntimeでサーバー上で行われます(これは永続的な変更ではありません)。

したがって、localuserはそのまま保持するキーワードです(lightdmは、ここでのユーザー名であり、LightDMを実行するユーザーです)。これは、グループがサーバーが承認を理解しているという点で、グループへの追加に多少似ています。ただし、システムグループやユーザーは影響を受けません。 Xサーバーのランタイム構成のみが変更されます。

マンページにあるように、引数なしで実行した場合のxhostのデフォルトの動作はリストの印刷です。

nothing If no command line arguments are given,  a  message  indicating
        whether  or not access control is currently enabled is printed,
        followed by the list of those allowed to connect.  

例えば:

$ xhost
access control enabled, only authorized clients can connect
SI:localuser:muru

ユーザーをリストに追加する方法、およびXがそのリストを使用する方法を決定するために、コードを調べる必要があるでしょう。


これが行われる理由は、gsettingsを使用するためです。これはdbusを使用するため、通常はXサーバーの実行が必要です。ただし、これは必須ではなく、 このAskUbuntuの回答 が表示されます。

9
muru