
このコマンド行を理解するのを手伝ってください:
xhost +SI:localuser:lightdm
でこの投稿の回答を参照また、もっと良い方法があるかどうか、またそれがなぜ必要なのかも教えてください。マニュアル ページからはあまり理解できなかったので、もっと詳細な回答があれば簡単にわかると思います。(localuser を自分のユーザー名に置き換える必要がありますか? また、グループに追加するようなものでしょうか? + は追加用であることはわかりますが、 SI や si はわかりません!)
ユーザーがどのようにして追加されたかについても教えてください。「接続を許可されたリスト」そしてそれが何を意味するのか。また、現在のリストを確認するにはどうすればいいのでしょうか?
答え1
xhost +SI:localuser:lightdm
lightdm
実行中の X サーバーにユーザーがアクセスできるようにします。現在の X サーバーはDISPLAY
環境変数によって示されます。
のマニュアルページかなり良い説明があります:
[+]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
マニュアルページ言う:
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
。リストでは、サーバー側で設定を行います。ランタイム(したがって、これは永続的な変更ではありません)。
したがって、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 の回答。