저는 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
현재는 관리자가 아닌 계정에 로그인했을 때 자체 클라이언트 창을 시작하는 앱을 시작하는 데 관심이 없습니다 . 나는 단지 간단한 배관을 원한다표준 출력Vim이나 Bash 명령줄에서 Shift+In(예: echo dog | xsel -ib
또는 ) 을 사용하여 검색할 수 있도록 클립보드에 저장합니다 echo dog | xsel -ip
.
/tmp/tmp.txt
내 현재 계획은 로그인 화면에서 로그인한 사용자와 로그인한 사용자 간에 텍스트를 전달하기 위해 쓰거나 리디렉션하는 것입니다 su
. 나는 터미널이 시작된 계정에 관계없이 클립보드가 공유되는 Cygwin의 동작에 익숙합니다.
문제 해결
su
비관리자 계정과 관리자 계정에 로그인해도 동일한 동작이 발생합니다 . xsel
내가 로그인한 비관리자 계정에서는 작동하지만 내가 로그인한 관리자 계정에서는 작동하지 않습니다 su
.
기본적 xsel
으로 su
.
댓글대로 살펴보니이 문제의 답. 오류 메시지가 상당히 다르기 때문에 문제 설명을 인식할 수 없습니다. 따라서 오류 메시지를 기반으로 보는 사람은 해당 질문을 인식하지 못할 것입니다. 게다가 나는 답변을 이해하지 못합니다. 내 솔루션에 적용될 수 있는 것처럼 보였지만 xhost +localhost
적어도 내가 사용하고 있는 Ubuntu 버전에서는 구문이 잘못되어 작동하지 않았습니다. 나는 그 구문을 게시하다아래 내 답변에서 작업하십시오.
위에 인용된 페이지가 원격으로 누군가에게 알릴 수 있기 전에 문제는 X 서버에 액세스할 수 있는 계정의 권한이 부족하다는 점을 알아야 한다고 생각합니다. 예를 들어, Cygwin의 X-windows를 사용해 본 경험이 있다면 문제가 거기에서 나타나지 않기 때문에 아마도 이것을 추측하지 못할 것입니다.
답변1
당신은 사용할 수 있습니다pam_xauth
su
더 일반적으로 해당 사용자에게 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"
한 번에 한 명씩 사용자를 추가하는 것에 대한 유용한 대안은 xhost +local:
모든 로컬 사용자가 클라이언트 창을 열 수 있도록 허용하는 것입니다. 이는 컴퓨터에 로그온한 모든 사람을 신뢰한다는 의미입니다. 따라서 이는 단일 사용자 컴퓨터와 같은 통제된 환경에서만 수행되어야 합니다.
많은 환경에서 PRIMARY 선택 항목을 레지스터의 [G]Vim에 붙여넣을 수도 있습니다 *
.
마찬가지로, CLIPBOARD 버퍼는 종종 레지스터의 [G]Vim +
이나 Ctrl+V를 사용하는 다른 앱에서 붙여넣을 수 있습니다.