"su - other-account"以降、xselは認識されません。

"su - other-account"以降、xselは認識されません。

私はLinuxを初めて使用し、次のコマンドを使用して次のバージョンのUbuntuをVirtualBox VMに設定しました。このコース:

ubuntu-20.04.3-desktop-amd64.iso

最初に作成されたアカウントは管理者アカウントです。インストールしxselて動作することを確認してみました。その後、管理者以外のアカウントを作成し、sudを使用してそのアカウントに入りましたsu - non-admin-account。当時のxsel苦情は次のとおりです。

xsel: Can't open display: (null)
: Inappropriate ioctl for device

別のアカウントにログインした後にアクセス権を取得するにはどうすればよいですかxselsu

su現在、私は管理者以外のアカウントを入力したときに独自のクライアントウィンドウを起動するアプリケーションを起動することに興味がありません。私は単純なパイプが欲しい標準出力echo dog | xsel -ibVimまたはBashコマンドラインで、Shift + In(たとえば、または)を使用してクリップボードに保存しますecho dog | xsel -ip

/tmp/tmp.txt私の現在の計画は、ログイン画面でログインしたユーザーとログイン画面でログインしたユーザーの間にテキストを渡すように書き込むかリダイレクトすることですsu。私は、端末がどのアカウントで実行されても、クリップボードが共有されるCygwinの動作に精通しています。


トラブルシューティング

管理者以外のアカウントと管理者アカウントでログインすると、su同じ動作が発生します。 xselログインした管理者アカウントではないアカウントでは機能しますが、ログインした管理者アカウントsuでは機能しません。

本質xsel的にsu

コメントを見て探すこの質問に対する答え エラーメッセージが非常に異なるため、問題の説明を識別できません。したがって、エラーメッセージに基づいている人は問題を認識できません。さらに、私はこれらの答えを理解していません。私に役立つような解決策はありますが、xhost +localhost少なくとも私が使用しているUbuntuのバージョンでは構文が間違っているため動作しません。私が投稿したフレーズはする以下の回答を書いています。

上記のページが誰かにリモートで通知を送信する前に、問題がXサーバーへのアカウントアクセス不足であることを知っておく必要があると思います。たとえば、Cygwinを使用するX-windowsの背景知識がある場合、問題がそこに現れないため、これを推測できない場合があります。

答え1

あなたはそれを使用することができますpam_xauth認証モジュールは、suX サーバーをこれらのユーザーに広く公開することなく、コール全体で X11 セッション Cookie を転送できます。

これにより、ディレクトリの構成ファイルを使用して、どのユーザーが他のユーザーに資格情報を渡すことができるかを細かく制御できます$HOME/.xauth/

答え2

に基づいてウォルトナー私が見つけたコメントこのページ使い方に関しては、xhostこの情報で以下が機能することがわかりました。

# Log into admin-username from the login screen,
# then issue:
$ xhost +SI:localuser:nonadmin-username

   localuser:nonadmin-username being added to access control
   list.

$ xhost

   SI:localuser:nonadmin-username
   SI:localuser:admin-username

$ su - nonadmin-username
# Enter password when prompted

# Match DISPLAY to its value in the admin account
$ export DISPLAY=:0

$ ls | xsel -ip # Use PRIMARY selection e.g. X-windows mouse highlighting
$ ls | xsel -ib # Use CLIPBOARD buffer e.g. Windows's Ctrl+C/X/V
$ exit # Exit the "su" session

# Paste then works in admin account as expected.
# To test the PRIMARY selection:
$ cat # In admin account
# Paste using middle mouse button or Shift+Ins
Ctrl+D to end input into "cat"

一度に 1 人ずつユーザーを追加するのに役立つ代替案は、xhost +local:すべてのローカルユーザーがクライアントウィンドウを開くことを許可することです。これは、そのコンピュータにログインしているすべての人を信頼することを意味します。したがって、これはシングルユーザーコンピュータなどの制御された環境でのみ実行できます。

多くの環境では、PRIMARY選択をレジスタから[G] Vimに貼り付けることもできます*

同様に、クリップボードバッファは通常+Ctrl + Vを使用してRegisterまたは他のアプリケーションから[G] Vimに貼り付けることができます。

関連情報