따라서 일반 사용자로 Xorg 명령을 사용하려고 하면 다음과 같은 오류가 발생합니다.
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
그런데 이해가 안 돼요. "콘솔 사용자"란 무엇입니까? 루트로 전환하면 또 다른 오류가 발생합니다.
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE)
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
그렇다면 정확히 무슨 일이 일어나고 있으며 각 오류의 원인은 무엇입니까?
업데이트: 명령의 출력은 다음 netstat -ln | grep -E '[.]X|:6[0-9][0-9][0-9]
과 같습니다.
unix 2 [ ACC ] STREAM LISTENING 18044 @/tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 47610 @/tmp/.X11-unix/X1
unix 2 [ ACC ] STREAM LISTENING 18045 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 47611 /tmp/.X11-unix/X1
답변1
보안 관련 사항을 확인하고(누구나 루트 권한으로 X-Server를 시작할 수 있으며 하드웨어 액세스 권한이 있고 많은 수의 파일에 액세스하기 때문에 잠재적으로 큰 보안 허점이 열릴 수 있음) 보안이 아닌 기능에만 관심을 갖는 경우 성적으로 이에 대한 것입니다. 질문의 일부:
따라서 일반 사용자로 Xorg 명령을 사용하려고 하면 다음과 같은 오류가 발생합니다.
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
다음 조치가 도움이 될 수 있습니다.
당신은에 추가할 수 있습니다
/etc/X11/Xwrapper.config
철사
allowed_users = anybody
설명은 다음과 같습니다 man Xorg.wrap
.
구성 파일
[...]
allowed_users = rootonly|console|anybody
래퍼를 통해 X 서버를 시작할 수 있는 사용자를 지정합니다. 루트만 허용하려면 rootonly를 사용하고, 물리적 콘솔에 로그인한 사용자만 허용하려면 console을 사용하고, 누구든지 허용하려면 누구든지 사용하세요. 기본값은 콘솔입니다.
답변2
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
그런데 이해가 안 돼요. "콘솔 사용자"란 무엇입니까?
이는 다음부터 시작해야 함을 의미합니다.리눅스 텍스트 콘솔, 실제로 당신이 어떤 사용자인지는 중요하지 않습니다. ( root
항상 허용되지 않는 한) 혼란스러워 :).
다음은 시스템 구성 방식에 따라 Linux 텍스트 콘솔로 전환하는 두 가지 예입니다.
번호가 매겨진 콘솔(Ctrl+Alt+F1, Ctrl+Alt+F2 등)이 텍스트 로그인을 허용하는지, 그래픽 세션에 사용되는지(또는 전혀 사용되지 않는지)와 같은 세부 정보는 다를 수 있습니다.
"리스닝 소켓을 설정할 수 없습니다..."라는 메시지가 계속 나타납니다.
다음과 같은 오류 메시지가 나타납니다.
_XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running Fatal server error: Cannot establish any listening sockets - Make sure an X server isn't already running
이 질문은 이전 질문과 매우 유사합니다. 잠금 파일이 어떤 방식으로 삭제되었거나 잠금 파일을 생성하지 않는 다른 프로그램이 이미 이 포트에서 수신 대기하고 있기 때문에 이 메시지가 표시될 수 있습니다. 를 실행하여 이를 확인할 수 있습니다
netstat -ln
. Xserver는 일반적으로 TCP 포트 6000+에서 수신 대기하므로 명령줄 옵션을 사용하여 Xserver를 시작하면:1
포트 6001에서 수신 대기합니다. 자세한 내용은 위의 기사를 확인해주세요..
위에서 언급했듯이 인용된 섹션 위에 :0
의 :1
의미에 대한 자세한 정보가 있습니다.:2
https://www.x.org/wiki/FAQErrorMessages/#index5h2
(TCP 포트를 수신하지 않는 최신 X 서버 구성을 사용하고 있다는 점에 유의하십시오. 이것이 _XSERVTransSocket에서 오류가 발생하는 이유입니다.유닉스 시스템_XSERVTransSocket 대신 CreateListener이네트리스너를 만듭니다. 하지만 원리는 똑같습니다.)
Kali 가상 머신에서 Xorg:2를 시도하면 화면이 검게 변하는데, 왜 이런 일이 발생합니까?
아하, 그렇죠 :-D. Xorg는 그래픽 서버입니다. 그래픽을 표시하려면 클라이언트 프로그램을 실행해야 합니다.
오늘날 Xorg도 빈 커서로 시작합니다. 그래픽 콘텐츠를 시작할 때 깜박임/불일관성을 방지하기 위한 기능이 의도적으로 없습니다. 이것이 변경되었습니다. Xorg를 처음 사용했을 때 기본 배경과 커서가 매우 눈에 띄었습니다. 어떻게 보이는지 보려면 해당 -retro
옵션을 전달하면 됩니다 :-).
전통적으로 – 내 생각에는 이것이 Xwrapper 동작이라고 생각합니다 – Xorg는 사용하지 않는 콘솔을 잡고 그 콘솔로 전환했습니다. 이 경우 이전 콘솔로 다시 전환할 수 있습니다(위 참조). 물론, 어떤 디지털 콘솔이 차지하고 있는지 알아내고 나면 Xorg 서버로 다시 전환할 수 있습니다 :-).
Linux에서 가상 머신을 실행하는 경우 해당 키 조합을 누르면 콘솔이 전환될 수 있으므로 가상 머신은 Ctrl+Alt+F1 키 조합 또는 기타 키 조합을 삽입할 수 있는 방법을 제공합니다.진짜기계.
비교하라고 말씀드리고 startx -- :2
(희망적으로) X 서버뿐만 아니라 일부 클라이언트도 시작합니다. :-). 그러나 오늘날 가장 인기 있는 최신 GUI는 명시적으로 다중 세션을 지원하지 않습니다. 따라서 를 실행하기 전에 반드시 기존 GUI 세션에서 로그아웃해야 합니다 startx
. 그렇지 않으면 작동하는 것처럼 보이지만 이해하지 못하는 이상한 방식으로 문제가 발생할 수 있습니다.
답변3
startx 명령을 사용하여 DWM을 시작하고 이를 bashrc에 삽입하므로 로그인할 때마다 startx 명령을 수동으로 입력할 필요가 없습니다. 그러면 "콘솔 사용자만 x 서버를 사용할 수 있습니다"라는 메시지가 표시되기 시작합니다. " 오류가 발생하여 bashrc에서 startx 명령을 제거했습니다. 즉, 서버를 수동으로 시작해야 했지만 이제는 더 이상 오류가 발생하지 않습니다.
답변4
CentOS 9를 새로 설치했을 때 이런 일이 일어났습니다. 문제는 /etc/X11/Xresource
다음과 같이 모든 그룹을 포함하도록 파일 권한을 변경해야 한다는 것입니다 root
.
# chmod 775 /etc/X11/Xresource