Running GUI as another (non-root) user

 

 

 

 

루트 외 사용자로 접속해

GUI 기반의 애플리케이션들, 즉

별도의 display 출력이 필요한 프로그램들

예) rdesktop / firefox / shellter / dirbuster

등을 실행 시

 

 

 

#cannot_open_display

#failed_to_open_x11_display

등의 에러와 함께 프로그램이 열리지 않는

경우가 있는데

 

 

 

내 경우 새로 설치한 Kali linux(기본 zsh)에서

root로 접속 시 GUI 애플리케이션들이 정상적으로

작동하는데, 일반 유저로 전환 시 위 Display

에러와 함께 프로그램 사용이 불가능했다.

 

 

 

일반적인 해결책으로

해당 유저의 $DISPLAY 변수에 ':0.0'를 등록하고

sshd_config에 들어가 'X11 Forwarding'이 yes로

되어 있는지 확인하는 방법 등으로 해결할 수 있다는데

나는 안 되었다.

 

 

 

 

 

 

삽질 끝에

Need to share authentication from user1

이라는 방법을 찾았고 이는 xauthority 권한을

셰어하는 방법이었는데

 

 

# cat ~/.Xauthority | sudo -u user2 -i tee .Xauthority > /dev/null

 

 

 

위 명령어를

GUI 애플리케이션이 정상 작동하는

유저에서 입력해 주면 일반 유저에서 또한

사용이 가능해진다.

 

 

 

 

 

 

 

-정리-

 

 

GUI app 정상 작동하는 유저가 아래 명령어 입력

# cat ~/.Xauthority | sudo -u user2 -i tee .Xauthority > /dev/null

 

 

GUI app 정상 작동 안 되는 유저로 로그인 후

$ export ":0.0"

입력

 

 

작업 순서는 바뀌어도 상관없으나

반드시 둘 다 수행되어야 함

 

728x90

+ Recent posts