xterm은 RHEL 7.2에서 다음 오류를 발생시킵니다.
$ xterm &
[1] 21638
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s
[1]+ Exit 1 xterm
[/RHEL/Packages]
$ rpm -qa | grep -i xterm
xterm-295-3.el7.x86_64
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
간단히 말해서: 응용 프로그램을 루트로 실행하지 마십시오.
긴:
이 메시지는 무엇이 잘못되었는지 알려줍니다. 이 메시지를 받는 일반적인 방법은 (권한이 없는 일반 사용자로) 로그인하여 다음을 사용하는 것입니다.su
또는sudo
로 전환root
사용자.
이 메시지(및 확인)는 1997년에 추가되었습니다(5월 토론의 후속 조치로 6월 말에 XFree86에 대한 패치로 처음 등장했으며 2주 후 X11R6.3에 나타났습니다).
그것 앞에,root
X 세션에 연결하여 모든 프로그램(예:root
)선택했습니다. 불행하게도 귀하가 사용하는 많은 프로그램은 안전하지 않습니다. (이것은 여전히 거의 모든 데스크톱 응용 프로그램의 상태입니다.)
X 라이브러리를 확인하여 다음과 같은지 확인하세요.root
사용자를 선택한 다음 환경 변수를 삭제합니다(예:DISPLAY
) 이로 인해 안전하지 않은 앱에 갇히게 될 수도 있습니다.
일부 시스템에서는 허용됩니다.root
사용자는 즉시 가장 쉽게 액세스할 수 있는 애플리케이션에 대해 데스크톱 세션에 로그인하며 상대적으로 안전한 상태를 유지하도록 선택했습니다. 어떤 사람들은 이것을하지 않습니다.
이제 Red Hat 7에는 xterm
set-uid 또는 set-gid가 설치되어 있지 않습니다. set-uid를 루트로 사용하여 20년 전에 BSD 스타일 의사 터미널을 열었고 set-gid를 사용하여 utmp를 업데이트했습니다. 두 사람 모두 오랫동안 떠나 있었습니다. 당신은 이것을 수행하여 볼 수 있습니다
ls -l /usr/bin/xterm
set-uid 또는 루트 사용자 권한을 찾으려면 xterm을 실행하는 셸에서 시작할 수 있습니다.