「su - other-account」の後にxselが認識されない

「su - other-account」の後にxselが認識されない

私はLinux初心者で、以下のバージョンのUbuntuをVirtualBox VMとしてセットアップしました。このプロセス:

ubuntu-20.04.3-desktop-amd64.iso

最初に作成されたアカウントは管理者アカウントでした。インストールしxselて動作を確認しました。次に、管理者以外のアカウントを作成し、suでログインしましたsu - non-admin-account。その時点で、は次のようにxselエラーを出力します。

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

別のアカウントにログインしたxsel後にアクセスできるようにするにはどうすればいいですか?su

su現時点では、管理者以外のアカウントで独自のクライアントウィンドウを起動するアプリを起動することには興味がありません。標準出力クリップボードに保存して、Shift+Ins (例:echo dog | xsel -ibまたは )を使用して Vim または Bash コマンドラインで取得できるようにしますecho dog | xsel -ip

/tmp/tmp.txt私の現在の計画は、ログイン画面からログインしたユーザーと、ログイン画面からログインしたユーザーの間でテキストを渡すために、書き込みまたはリダイレクトすることですsu。私は、ターミナルがどのアカウントで起動されたかに関係なく、クリップボードが共有される Cygwin の動作に慣れています。


トラブルシューティング

su非管理者アカウントと管理者アカウントに ログインした場合、同じ動作になります。xselログインした非管理者アカウントでは機能しますが、ログインした管理者アカウントでは機能しませんsu

基本的に、xselの後では機能しませんsu

コメントに従って、私はこの問題の答え 問題の説明がわかりません。エラーメッセージはまったく異なるため、エラーメッセージに基づいて検索する人はその質問を認識できません。さらに、回答も理解できません。私の解決策に当てはまると思われる部分は でしたがxhost +localhost、少なくとも私が使用しているUbuntuバージョンでは構文が間違っているため機能しませんでした。構文を投稿します。する私の回答は下記に記載されています。

上記のページが誰かに少しでも情報を伝える前に、アカウントが X サーバーにアクセスするための権限がないことが問題であることを知っておく必要があると思います。たとえば、Cygwin の X-windows を使用した経験がある場合、問題はそこに現れないため、おそらくこれを推測できないでしょう。

答え1

あなたはpam_xauthsu認証モジュールは、X サーバーをそれらのユーザーに広く公開することなく、呼び出し間で X11 セッション クッキーを転送します。

これにより、ディレクトリ内の構成ファイルを介して、どのユーザーがどの他のユーザーに資格情報を転送できるかを細かく制御することもできます$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 に貼り付けることもできます*

同様に、CLIPBOARD バッファは、レジスタから [G]Vim に貼り付けられる場合もあれ+ば、Ctrl+V を使用する他のアプリから貼り付けられる場合もあります。

関連情報