일반적으로 나는 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
그러나 물론 그것은 작동하지 않습니다. SSH를 통한 일반 X 전달, sudo가 필요하지 않습니다.
sshd 설정은 3개 서버에서 동일합니다.
- 여유 소프트웨어일하다
- 마력 일하다
- CentOS7 작동 안함
답변1
또 다른 해결책은 현재 사용자의 .Xauthority 파일을 루트 사용자의 .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 -