web-dev-qa-db-ja.com

別のユーザーがX11vncを使用して自分のセッションに接続できるようにするにはどうすればよいですか?

X11vncを使用して、ユーザーが特定のコンピューターをリモート制御できるようにしようとしています。これは一般的には問題なく機能しますが、実装に問題がある側面が1つあります。特定のユーザーアカウントへのアクセスを制限したいのですが、X11セッションが属するユーザーが別のユーザーです。

したがって、状況は次のとおりです。

  • ユーザーAはコンピューターにログインしています
  • ユーザーBはシェルから手動でx11vncを起動します
  • VNC-クライアントVはどこかからそれに接続します

問題は、x11vncをrootとして、または現在ログインしているユーザーとしてのみ起動でき、他のユーザーとしては機能しないことです。特定のユーザーにX11セッションへのアクセスを許可する方法はありますか?

4
Mad Scientist

Xディスプレイは、接続できるようにするために指定する必要のある「キー」によって保護されています。そのキーは通常、ユーザーの~/.Xauthorityファイルに保存されます。

他の人のアプリケーション(x11vncなど)が自分のDISPLAYに接続できるようにするには、ユーザーはその人にそのキーを与えるか、自分の~/.Xauthorityファイルへのアクセスを許可する必要があります。を実行すると、ディスプレイのキーを取得できます。

xauth list "$DISPLAY"

権限(グループ所有権またはACL)を変更することにより、~/.Xauthorityへのアクセスを許可できます。

他のユーザーは、XAUTHORITY環境変数を介して使用する典拠ファイルを指定するか、~/.Xauthorityを使用して自分のxauth addに特定のディスプレイにキーを追加できます。 。

4

Xセッションにアクセスできないためにx11vncを起動することさえできないという問題がある場合は、xhost +SI:localuser:other_usernameを開始する前に、x11vncを使用して他のユーザーにアクセスを許可する必要があります。他のユーザー。

質問のタイトルは、VNCサーバーへのアクセスを制限したいように聞こえます。

2
Janus Troelsen