
보통 나는 X 애플리케이션을 얻기 위해 ssh에서 이 작업을 수행합니다.sudo su
ssh -X server
OKI 로그인
xauth list $DISPLAY
나에게 돌아오는 것
server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
그럼 내가 할게
sudo su
xauth add server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
그리고 X 응용 프로그램을 실행한 후..알았는데 맞네요.
문제는 Centos7에 있습니다. 그렇습니다.
xauth list $DISPLAY
그리고 아무것도 반환하지 않습니다. 에서 제공한 MIT 매직 쿠키를 추가하려고 합니다.
xauth list
그러나 물론 그것은 작동하지 않습니다. sudo 없이 ssh를 통한 일반적인 X-전달이 작동합니다.
sshd의 설정은 3개의 서버에서 동일합니다:
- 슬랙웨어공장
- HPUX 공장
- 센토스7 작동 안함
답변1
또 다른 해결책은 현재 사용자의 .Xauthority 파일을 루트 사용자의 파일과 병합하는 것입니다.
ssh user@host
- 루트도 액세스할 수 있도록 .Xauthority 파일 권한을 변경하십시오.
sudo su - root
xauth merge /home/users/user/.Xauthority
시험
gedit somefile.log
gedit 창을 열어야 합니다.
답변2
솔루션을 영구적으로 만들려면 .bashrc
로그인 사용자 추가 파일을 수정하면 됩니다.
if [ -z "$XAUTHORITY" ]; then
export XAUTHORITY=$HOME/.Xauthority
fi
sudoers
게다가 행을 추가하여 파일을 업데이트해야 합니다.
Defaults env_keep+="DISPLAY XAUTHORITY"
루트에 로그인 사용자의 파일에 대한 읽기 권한이 있으면 .Xauthority
X 응용 프로그램을 사용할 수 있습니다.
답변3
해결책을 찾았습니다. 여기에서 복사한 대체 방법블로그 이 스크립트 사용
userfirst=sshloginuser
usersecond=sudoorsuuser
$usersecond@host$
su - $userfirst -c 'xauth list' |\
grep `echo $DISPLAY |\
cut -d ':' -f 2 |\
cut -d '.' -f 1 |\
sed -e s/^/:/` |\
xargs -n 3 xauth add
또는 단순히 user1로 로깅
xauth list
su 또는 sudo su user2
xauth add OUTPUTOFXAUTHLIST
답변4
매우 간단한 일반 명령:
sudo xauth merge /home/$USER/.Xauthority
그러면 루트 환경이 활성화되고 현재(루트가 아닌) 사용자의 xauth 정보가 병합됩니다.
또 다른 대안은 Slackware에 대한 의견에 보고된 소유권 문제를 방지해야 합니다.
cat ~/.Xauthority | sudo xauth merge -