it-swarm-ja.com

X11ディスプレイに接続できるローカルユーザーを制限する

自分のマシンでX.orgサーバーを実行しています(PAMなしのGentoo Linux、PolicyKitなど)。着信TCP接続は-nolistentcpで無効になっています。

そのX11ディスプレイでウィンドウを開くことを許可されているローカルユーザーを指定するホワイトリストを確立することは可能ですか?

編集:このsystemdユニットでXサーバーを起動します:

[Unit]
Description=X Window System
Requires=systemd-user-sessions.service
After=systemd-user-sessions.service

[Service]
ExecStart=/usr/bin/xinit ${HOME}/.xinitrc -- -nolisten tcp vt09
User=myuser
Environment=Shell=/bin/bash

[Install]
Alias=display-manager.service

編集2:これに変更しました...

ExecStart=/usr/bin/xinit ${HOME}/.xinitrc -- -auth ${HOME}/.Xauthority -nolisten tcp vt09

...作成された$ {HOME} /。Xauthority.。

mcookie | sed -e 's/^/add :0 . /' | xauth -q

...そしてXサーバーを再起動しました。出来上がり、承認はデフォルトで拒否されるようになりました。特定のユーザーにアクセスを許可するために、.Xauthorityをホームディレクトリにコピーしました。

xhostコマンドは使用されませんでした。

3
user267565

Xorgの場合–はい、特別な種類の「サーバーで解釈された」アドレスを使用します。

xhost +SI:localuser:root
xhost +SI:localuser:jim

または、Xorg -auth …に使用したXauthorityファイルのコピーをすべてのユーザーに提供することもできます。

ただし、X11は同じディスプレイにアクセスする複数のユーザー向けに設計されておらず、基本的にすべてのクライアントがフルアクセスできるため、これを行うことで大きなセキュリティホールが発生します。すべてのユーザーが画面全体を監視し、キーロガーを実行し、他のユーザーに許可を与えることができます既存のユーザーのアクセス、またはアクセスの取り消し。

2
user1686