su
터미널(로컬 터미널 또는 X11 전달 기능이 있는 SSH)에서 사용자는 X 응용 프로그램을 열 수 있지만 다른 사용자는 핑 후에는 열 수 없습니다.
아래 출력을 참조하세요.
u1@cluster:~$ xclock
u1@cluster:~$ su
Password:
root@cluster:# su - u2
[u2@cluster ~]$ xclock
No protocol specified
Error: Can't open display: localhost:11.0
[u2@cluster ~]$
그렇다면 해결책은 무엇입니까?
답변1
/usr/local/bin
나는 보통 or 에서 다음 스크립트를 만듭니다 $HOME/bin
.
#!/bin/bash
HOSTNAME=`uname -n`
ARG=`echo $DISPLAY | sed -e "s/localhost/$HOSTNAME\/unix/"`
XAUTH=`/usr/bin/xauth -i -f ~/.Xauthority list ${ARG}`
echo "The following is used for graphical displays through ssh."
echo "Copy and paste the following commands AFTER you have \"su - [user]\""
echo "---------------- Copy below ------------------------------------"
echo "DISPLAY=$DISPLAY;export DISPLAY"
echo "/usr/bin/xauth -bi add \\"
echo "${XAUTH}"
echo "---------------- Copy above ------------------------------------"
이 스크립트를 실행합니다.앞으로su
또는 .를 사용하여 sudo
다른 사용자로 전환한 후 지침에 따라 출력을 잘라내어 붙여넣습니다. 프로그램 X
이 실행되어야 합니다.
[bschuck@dhcp-10-100-11-138 ~]$ bin/xtunnel
The following is used for graphical displays through ssh.
Copy and paste the following commands AFTER you have "su - [user]"
---------------- Copy below ------------------------------------
DISPLAY=localhost:10.0;export DISPLAY
/usr/bin/xauth -bi add \
dhcp-10-100-11-138/unix:10 MIT-MAGIC-COOKIE-1 \
b64ace6b49bb1b49c59679a2db6411eb
---------------- Copy above ------------------------------------
[bschuck@dhcp-10-100-11-138 ~]$ su - zippy
Password:
[zippy@dhcp-10-100-11-138 ~]$ DISPLAY=localhost:10.0;export DISPLAY
[zippy@dhcp-10-100-11-138 ~]$ /usr/bin/xauth -bi add \
> dhcp-10-100-11-138/unix:10 MIT-MAGIC-COOKIE-1
b64ace6b49bb1b49c59679a2db6411eb
[zippy@dhcp-10-100-11-138 ~]$ xclock &
[1] 6076
[zippy@dhcp-10-100-11-138 ~]$