답변:
user1을 실행하면서 xauth를 선택적으로 사용하려면 :
xauth list|grep `uname -n`
이렇게하면 16 진수 인증 항목이 인쇄됩니다. 당신은 할 수 뿐만 아니라 해당 호스트와 관련된 다른 표시가 있습니다.
user2가 디스플레이를 설정하면 (기본 경우) :
DISPLAY=:0; export DISPLAY
그런 다음 다음을 실행하십시오.
xauth add $DISPLAY . hexkey
$ DISPLAY 다음과 16 진 키 앞의 점에 유의하십시오.
더 이상 액세스가 필요하지 않은 경우 user2로 다음을 실행할 수 있습니다.
xauth remove $DISPLAY
unset XAUTHORITY
user2
hexkey
에 xauth add
에서와 같은 명령 xauth list
또는 내가 임의의 새로 작성해야합니까?
나는 내 .zshrc
라인을 export XAUTHORITY=~/.Xauthority
넣었고 이제는 실행할 수 sudo -E xcommand
있습니다. 많은 인터넷 검색 후 나에게 이것은 가장 쉬운 방법이었습니다.
sudo -E
( -E
대부분의 기본 설치에서는 사용 이 비활성화되어 있음) . sudoers
XAUTHORITY
-E
. 전달할 수있는 변수로 설정할 수 있으며 Red Hat 또는 Debian에서 제안합니다.
데비안 또는 우분투를 가정하면 (Red Hat / SUSE에서 비슷해야 함).
sudo apt-get install sux
sux user -c 'command'
sux
유지 관리되지 않음 (데비안 / 우분투 리포지토리에서 제거됨) : packages.qa.debian.org/s/sux/news/20140101T172633Z.html
첫째 :을 사용하지 말고 xhost +
다소 안전 하지 않습니다 (담요 허용 / 거부).
대신 X-Cookie 메커니즘을 사용하십시오.
su user2
cp /home/user1/.Xauthority /home/user2/.Xauthority
export DISPLAY=:0
또는 sux
설치 한 경우이를 사용하십시오 (ehempel의 답변 참조).
두 경우 모두 user2는 .Xauthority의 비밀 쿠키를 사용하여 X 서버에 권한을 부여하고 다른 사람은 액세스 할 수 없습니다.
노트:
.Xauthority
사용할 수도 있습니다 xauth
(랜달의 답변 참조). .Xauthority
파일에 여러 개의 키가있는 경우이 키 가 더 선택적입니다. 그렇지 않으면 맛의 문제입니다.나는 KDE에서 나에게 잘 맞는 것을 발견했다.
kdesu -u username /path/to/program
kde-cli-tools
, 그리고에서 $PATH
만에서 /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu
(분명히 아키텍처에 따라 다름).
이 방법은 suse / opensuse에서 이루어집니다. http://www.novell.com/support/kb/doc.php?id=7003743
옵션 (bold)을 추가하여 /etc/pam.d/su를 수정하기 만하면됩니다.
세션 옵션 pam_xauth.so systemuser = 1
그런 다음-없이 su로 전환 할 수 있습니다 :
su user2
앱을 그래픽으로 실행하십시오.
그놈의 경우 (데스크톱 환경이 없으면 icewm에서만 사용합니다) gksu
:
gksu -u username program
.Xauthority
파일이 user2의 홈 디렉토리에 없습니다. 문제 2 : 어쨌든 어떤 이유로 든su
XAUTHORITY가 user1의 파일 경로를 보유하고 있다는 것을 이해하지 못합니다 . 그러나 user2는 해당 파일을 읽을 수 없습니다.