"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

다른 계정에 로그인한 후 액세스 권한을 얻으려면 어떻게 해야 합니까 xsel?su

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 세션 쿠키를 전달할 수 있습니다.

또한 이를 통해 디렉터리의 구성 파일을 통해 어떤 사용자가 다른 사용자에게 자격 증명을 전달할 수 있는지를 세밀하게 제어할 수 있습니다 $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"

한 번에 한 명씩 사용자를 추가하는 것에 대한 유용한 대안은 xhost +local:모든 로컬 사용자가 클라이언트 창을 열 수 있도록 허용하는 것입니다. 이는 해당 컴퓨터에 로그인하는 모든 사람을 신뢰한다는 의미입니다. 따라서 이는 단일 사용자 컴퓨터와 같은 통제된 환경에서만 수행될 수 있습니다.

많은 환경에서 PRIMARY 선택 항목을 레지스터에서 [G]Vim 으로 붙여넣을 수도 있습니다 *.

마찬가지로 클립보드 버퍼는 일반적으로 +Ctrl+V를 사용하여 Register나 다른 응용 프로그램에서 [G]Vim에 붙여넣을 수 있습니다.

관련 정보