このコマンドラインを理解するのを助けてください:
xhost +SI:localuser:lightdm
in この投稿の回答への参照 そして、より良い方法があるかどうかと、それが必要な理由を提案します。 manページからは多くを作ることができなかったので、それを簡単にするために、もう少し詳細な答えを期待しています。 (localuserを自分のユーザー名に置き換える必要がありますか?それはグループに追加するようなものですか?+は追加用ですが、SIまたはsiが理解できません!)
また、ユーザーが「接続を許可されるリスト」に追加される方法とその意味も説明してください。また、現在のリストを確認するにはどうすればよいですか?
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の回答 が表示されます。