ユーザーが特定のコンピュータをリモートで制御できるようにx11vncを使用しようとしています。通常、これはかなりうまく機能しますが、実装に問題がある1つの側面があります。特定のユーザーアカウントへのアクセスを制限したいのですが、X11セッションは他のユーザーに属しています。
したがって、状況は次のようになります。
- ユーザーAがコンピュータにログインしています。
- ユーザーBはシェルからx11vncを手動で起動します。
- VNC-クライアントVはどこかで接続されています。
問題は、x11vncをrootまたは現在ログインしているユーザーとしてのみ起動できることです。他のユーザーのように動作しません。特定のユーザーが自分のX11セッションにアクセスできるようにする方法はありますか?
答え1
Xモニターは、接続するために提供する必要がある「キー」で保護されています。このキーは通常、ユーザーの~/.Xauthority
ファイルに保存されます。
他の人のアプリケーション(x11vncなど)がDISPLAYに接続できるようにするには、ユーザーが彼にこのキーを提供するか、彼のファイルへ~/.Xauthority
のアクセスを許可する必要があります。以下を実行してモニターのキーを検索できます。
xauth list "$DISPLAY"
~/.Xauthority
権限(グループ所有権またはACL)を変更してアクセス権を付与できます。
他のユーザーは以下を指定できます。権威ある文書環境変数で使用するXAUTHORITY
か、特定の表示キーを追加して使用~/.Xauthority
しますxauth add
。
答え2
Xセッションへのアクセス権が不足して起動できない問題がある場合は、x11vnc
他のユーザーとしてxhost +SI:localuser:other_username
起動する前に他のユーザーにアクセス権を付与する必要がありますx11vnc
。
ただし、質問のタイトルは、VNCサーバーへのアクセスを制限したいと思われます。