X관련 프로그램의 사용자 변경시 실행문제 [9]

X관련 프로그램의 사용자 변경시 실행문제

2001-08-16 00:00 - 이태철

사용자를 바꾼 경우 X 관련 프로그램이 다음과 같은 에러 메시지를 보여주며 실행이 되지 않습니다.

-------------------------------
Xlib: connection to "prosys.korea.ac.kr:10.0" refused by server
Xlib: Xssh: Invalid x11 authentication cookie!

Gtk-WARNING **: cannot open display: prosys.korea.ac.kr:10.0
----------------------------

Redhat 7.1을 깔았고. Xmanger 최신 버전을 사용하고 있습니다. 그리고 접속은 ssh로 했습니다. hanterm -ls -display $DISPLAY 를 실행했습니다.

접속을 해서 일단 제가 뭐 xdvi 등과 같은 프로그램을 띄울때는 상관이 없지만 만약 root가 되서 xdvi를 실행하면 위와 같은 에러가 발생합니다. 그래서 다른 일반 사용자가 되서도 해 봤지만 동일한 문제가 발생합니다. 참 방화벽은 ipchains를 이용해서 구성을 했고요.. 방화벽과는 상관이 없는거 같지만.. ipchains를 내리고 난 후에도 안되네요..

얼마전까지는 7.1베타를 사용했었는데.. 이경우에는 문제가 없었습니다. 그런데 7.1로 올리고 난 후에는 문제가 생기네요..

저만 문제가 발생하는지요..? 다른분들은 문제가 없나요..? 콘솔에 로긴해서 작업을 할 수도 없고..

그럼 답변 기다리겠습니다.


'su -'를 사용하지 마시고 'su'를 사용하세요.

2001-08-16 00:00 - michael

X11 forwarding은 로그인 한 유저에게만 유효합니다.
로그인 한 유저에게만 DISPLAY 환경변수가 설정되고,
X authentication이 설정되기 때문입니다.

만약 'su' 로 유저를 변경한 후 다른 X 응용 프로그램을 실행시키고 싶다면...
해결방법은 sshd의 종류에 따라 다릅니다.

1] openssh에서 나온 sshd를 사용할 경우
'su -'를 사용하지 말고, 그냥 'su'(-를 넣지 마시기 바랍니다.)를 사용하세요..

2] ssh.com에서 나온 sshd를 사용할 경우
# su
# export HOME={로그인한 사용자의 홈디렉토리} (csh이라면 export 대신 setenv를 사용)
예를 들어 export HOME=/home/myid

참고하셨으면 합니다.


그것 역시 안되는데요..

2001-08-16 00:00 - 이태철

혹시 RedHat 7.1에서 테스트를 해 보셨는지요..?

만약 해 보셨다면 저만 안되는 경우입니다. 일단 제가 관리하는 서버가 3개 있는데 모두 7.1이 깔려 있는 상태입니다. 물론 거의 비슷한 방식으로 깔았겠죠.. 그리고 openssh가 깔려 있는 상태입니다.

이 상황에서 모두 다른 유저가 되는 경우에는 X 관련 프로그램을 실행할 수 없습니다.

그렇지만 재미있는 것은 telnet으로 세션을 만들어 사용하는 경우에는 문제가 없다는 것입니다. 제 생각에는 ssh를 사용해서 생긴문제 같은데.. 혹 다른 의견이 있으신지요..

그럼 이만..


'su' 한 상태에서 env 명령을 실행했을 때, XAUTHORITY 환경변수가 있는 지요?

2001-08-16 00:00 - michael

ssh은 X11 forwarding을 할 때, 자체적으로 authority 체크를 합니다.
OpenSSH 데몬은 authority 체크를 XAUTHORITY 환경변수가 가리키는
파일을 이용해서 실행합니다.

그러므로...
'su' 한 상태에서 env 명령을 실행했을 때,
XAUTHORITY 환경변수가 있는 지 확인해보시기를 바랍니다.


su 한 상태에서는 없습니다.

2001-08-16 00:00 - 이태철

로그인을 한 다음에 echo $XAUTHORITY 를 해 보면 /tmp/ssh-어쩌구/cookies 라고 나오지만.. su 나 su - 로 다른 유저가 되서는 없습니다.


'su' 가 'su -' 로 앨리어스 되어있지는 않나요?

2001-08-16 00:00 - michael

'-' 없이 su를 실행하면 이전의 환경변수들이 상속됩니다.
그런데 su를 실행했을 때, 이전의 환경변수들이 상속되지 않는다면...
su 가 su - 로 앨리어스 되어있는 걸로 생각됩니다.

그건 alias 명령으로 확인할 수 있구요..

만약 그렇다면 su 를 실행해보시기를 바랍니다.
이게 제대로 동작한다면..$HOME/.bashrc 나 $HOME/.bash_profile 에
설정되어 있는 alias를 삭제하시면 될 겁니다.


한번 깔아보시면 금방 알게 되실텐데..

2001-08-16 00:00 - 이태철

계속 이렇게 글을 올려서 좀 그러네요..

하여간..

su를 이용하는 경우에도 몇가지 정보는 넘어오지만 몇가지 정보는 넘어오지 않습니다. MAIL 과 같은 환경은 계속해서 유지되지만 HOME과 같은 정보는 유지가 되지 않습니다.

역시 XAUTHORITY 같은 환경 변수는 넘어오지 않네요.. 이건 분명히.. 7.1 beta까지는 되었는데 안되네요..

그럼 계속 부탁드립니다.


안되는게 당연한거 아닌가요?

2001-08-16 00:00 - X귀신

음 오랜만에 와보니 글 종류가 많이 바뀌었군요.
SSH는 많이 사용해 보진 못했지만 Security의 기본을 돌이켜 보면,
일단 연결된 사용자가 아닌 다른 사용자로 X 프로그램을 띄울 수
있으면, 보안에 문제가 발생합니다. 즉, 나 아닌 다른 사람이
내 Xmanager에 몰래 연결할 수 있다는 얘기죠. su로 바꾸어서
사용자 id가 완전히 바뀐 경우라면 X 프로그램이 뜨면 안됩니다.

옛날에는 됐다고 하셨는데, 혹시 .Xauthority 파일의 퍼미션이
문제가 아닐까 생각합니다. 즉, 일반사용자로 SSH 연결 후 su를
이용해서 root로 바꾸면, root는 일반사용자의 .Xauthority 파일을
읽을 수 있기 때문에 그냥 X 프로그램이 실행된 것 같은데요.
root가 아닌 다른 사용자로 바꾸었는데 된다는 것은 .Xauthority를
아무나 읽을 수 있도록 퍼미션을 주었다는 얘기가 되네요.

얘기가 길어졌는데 암튼 su로 사용자를 바꾸면 X 프로그램이
더 이상 실행 안돼야 보안에 문제가 없을 것 같군요.


흠.. .Xauthority 파일은 보안때문에 사용되지 않지 않나요..?

2001-08-16 00:00 - 이태철

일단 .Xauthority라는 파일은 요즘은 리눅스 머신에서 잘 사용이 되고 있지 않죠.. 아마 만들고 나면 로그인할 때 뭐라고 징징거릴껍니다.

su를 이용해서 다른 사용자가 됐을때 보안에 문제가 생길 수 있다는 점도 어짜피 이미 그렇게 됐으면 이미 그사용자의 패스워드를 알았다는 얘기니까 악의적 마음을 가졌다면 이미 보안에 대한 문제는 고려할 사항이 아니라고 봅니다.

그리고 su를 이용해서 X관련 프로그램을 사용할 수 없다는 점도 좀 이상한데.. 그렇다면 왜 telnet으로 로그인 방식을 하면 되냐는거죠.. 어짜피 telnet과 ssh 차이야 뭐 얘기할 필요 없는 부분이니까요..

마지막으로 리눅스 머신을 아예 사용하는 경우에는 다른 호스트에서 xterm이나 hanterm을 열어서(물론 ssh로 연결을 한 다음) su를 이용해서 다른 시스템 관리를 잘 할 수 있죠..

모르겠습니다. 이 문제가 ssh에서 보안 문제로 인해 생긴 것인지.. 아니면 제가 뭔가 설정을 잘못한것인지.. 그렇지만 안된다면 root로 로긴할 수 있는 아이콘을 하나 만들어 두고 이것으로 로그인을 해서 서버 관리를 해야되는데.. 흠.. 이 부분이 보안에서는 더 문제일꺼 같습니다.

고맙습니다.


'su -m'을 사용하세요.

2001-08-17 00:00 - michael

su 옵션 중에 -m 옵션이 있네요..
preserve-environment 옵션이군요...

-m 을 사용하시면 될 것 같습니다.

그리고...참고로...

> 그리고 su를 이용해서 X관련 프로그램을 사용할 수 없다는 점도 좀 이상한데..
> 그렇다면 왜 telnet으로 로그인 방식을 하면 되냐는거죠..

그건 ssh 데몬이 직접 Xauthority를 체크하기 때문입니다.
OpenSSH 데몬을 사용하면..X11 forwarding을 위한 Xauthority 파일을..
/tmp/..에 만들어 놓고 XAUTHORITY 환경변수를 셋팅합니다.

어쨌든...su를 했을 때, XAUTHORITY 환경변수가 있어야...
X 응용 프로그램을 사용하실 수 있을 겁니다.

그럼..


이전 조회수: 142