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로 올리고 난 후에는 문제가 생기네요..
저만 문제가 발생하는지요..? 다른분들은 문제가 없나요..? 콘솔에 로긴해서 작업을 할 수도 없고..
그럼 답변 기다리겠습니다.
-------------------------------
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
참고하셨으면 합니다.
로그인 한 유저에게만 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를 사용해서 생긴문제 같은데.. 혹 다른 의견이 있으신지요..
그럼 이만..
만약 해 보셨다면 저만 안되는 경우입니다. 일단 제가 관리하는 서버가 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 환경변수가 있는 지 확인해보시기를 바랍니다.
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를 삭제하시면 될 겁니다.
그런데 su를 실행했을 때, 이전의 환경변수들이 상속되지 않는다면...
su 가 su - 로 앨리어스 되어있는 걸로 생각됩니다.
그건 alias 명령으로 확인할 수 있구요..
만약 그렇다면 su 를 실행해보시기를 바랍니다.
이게 제대로 동작한다면..$HOME/.bashrc 나 $HOME/.bash_profile 에
설정되어 있는 alias를 삭제하시면 될 겁니다.
한번 깔아보시면 금방 알게 되실텐데..
2001-08-16 00:00 - 이태철
계속 이렇게 글을 올려서 좀 그러네요..
하여간..
su를 이용하는 경우에도 몇가지 정보는 넘어오지만 몇가지 정보는 넘어오지 않습니다. MAIL 과 같은 환경은 계속해서 유지되지만 HOME과 같은 정보는 유지가 되지 않습니다.
역시 XAUTHORITY 같은 환경 변수는 넘어오지 않네요.. 이건 분명히.. 7.1 beta까지는 되었는데 안되네요..
그럼 계속 부탁드립니다.
하여간..
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 프로그램이
더 이상 실행 안돼야 보안에 문제가 없을 것 같군요.
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를 이용해서 다른 사용자가 됐을때 보안에 문제가 생길 수 있다는 점도 어짜피 이미 그렇게 됐으면 이미 그사용자의 패스워드를 알았다는 얘기니까 악의적 마음을 가졌다면 이미 보안에 대한 문제는 고려할 사항이 아니라고 봅니다.
그리고 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 응용 프로그램을 사용하실 수 있을 겁니다.
그럼..
preserve-environment 옵션이군요...
-m 을 사용하시면 될 것 같습니다.
그리고...참고로...
> 그리고 su를 이용해서 X관련 프로그램을 사용할 수 없다는 점도 좀 이상한데..
> 그렇다면 왜 telnet으로 로그인 방식을 하면 되냐는거죠..
그건 ssh 데몬이 직접 Xauthority를 체크하기 때문입니다.
OpenSSH 데몬을 사용하면..X11 forwarding을 위한 Xauthority 파일을..
/tmp/..에 만들어 놓고 XAUTHORITY 환경변수를 셋팅합니다.
어쨌든...su를 했을 때, XAUTHORITY 환경변수가 있어야...
X 응용 프로그램을 사용하실 수 있을 겁니다.
그럼..
이전 조회수: 142