저는 GNOME3을 사용하여 Debian Jessie를 실행하고 있습니다.
두 명의 사용자가 로그인한 상황입니다.
user1이 켜져 있고 :0
user2가 켜져 있습니다 :1
.
다음으로 교환하고 싶습니다:
사용자 1 :1
과 사용자 2가 모두 켜져 있습니다 :0
.
답변1
방법이 있습니다다음에 추가사용자는 특정 디스플레이에제거하다특정 디스플레이의 사용자뿐만 아니라교환. 각 사용자가 xauth
디스플레이에 다른 사용자 추가를 실행한 다음 를 사용 xauth
하여 원래 화면에서 자신을 제거하도록 하면 됩니다 . 이는 한 계정에서 다른 계정으로 인증 데이터를 복사하고 여러 단계를 거쳐야 하기 때문에 어려운 작업처럼 보일 수 있습니다.
추가 자료:
- xauth - X 권한 파일 유틸리티
- xhost 보안 정책 정보메일링 리스트에 대한 Glenn Clements의 답변:
$XAUTHORITY
X 클라이언트는 지정된 파일(또는 설정되지 않은$HOME/.Xauthority
경우 )에 인증 자격 증명을 전달하여$XAUTHORITY
서버에 자신을 인증합니다 . 파일은 일반적으로 소유자만 읽을 수 있으므로 동일한 시스템의 다른 사용자는 X 세션에 액세스할 수 없습니다.X 세션에 다른 계정 액세스 권한을 부여하려면 다음 명령을 사용하여 인증 자격 증명을 추출하십시오."xauth 추출...", 다른 계정으로 전송하고 해당 계정이 다음을
~/.Xauthority
사용하여 자신의 파일에 추가하도록 하세요."xauth 병합...".
답변2
이건 불가능 해. X 서버는 처리 중인 디스플레이 번호를 알고 있지만 이를 변경할 수 있는 인터페이스가 없습니다.
(기술적으로는 X 서버 프로세스에서 디버거를 실행하고 올바른 명령을 실행하면 가능합니다. 운이 좋다면 잘못된 명령으로 인해 X 서버가 충돌할 수도 있습니다. 성공할 가능성은 거의 없습니다.)
어떤 문제를 해결하려고 하든 더 나은 해결책이 있을 것입니다. 대부분의 프로그램은 환경 변수가 나타내는 표시 번호를 사용합니다 DISPLAY
. env DISPLAY=:1 someprogram
대신 실행하면 someprogram
99%의 사례를 처리합니다. 이것이 X 라이브러리가 기본적으로 수행하는 작업입니다. 애플리케이션에 하드코딩된 나머지 1%에 대해 :0
프로그램이 동적으로 링크되는 경우 LD_PRELOAD
(설명 및 예시) 트릭을 수행해야합니다.