어제 나는같은 질문, 나는 다음을 실행하여 문제를 해결했습니다.
sudo synaptic
하지만 오늘은 무슨 일이 일어났는지 모르겠습니다. 제가 달려간 건지 gksu synaptic
아니면 gksudo synaptic
그들이 아무 조치도 취하지 않은 건지 모르겠습니다.
루트로 이동하여 다음 명령을 실행하거나 실행하면 다음이 sudo synaptic
표시됩니다.
sudo synaptic
No protocol specified
(synaptic:32377): Gtk-WARNING **: cannot open display: :0.0
편집자: @Nunoxic
저는 로컬 컴퓨터에서 작업 중입니다. 그렇게 하면 sudo apt-get update
일부 항목은 업데이트되고 일부 항목은 업데이트되지 않습니다.
E: Some index files failed to download. They have been ignored, or old ones used instead.
sudo apt-get update
2일전에 조깅을 나갔습니다 . 내가 할 때 echo $DISPLAY
출력은:0
@길스
출력은 echo $XAUTHORITY
아무것도 아닙니다 :)
의 출력은 sudo env | sort
다음과 같습니다
COLORTERM=gnome-terminal
DISPLAY=:0.0
HOME=/root
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_COLLATE=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LOGNAME=root
MAIL=/var/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
SHELL=/bin/bash
SUDO_COMMAND=/usr/bin/env
SUDO_GID=0
SUDO_UID=0
SUDO_USER=root
TERM=xterm
USERNAME=root
USER=root
의 출력은 sudo xterm
다음과 같습니다
No protocol specified
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
편집하다
의 출력은 XAUTHORITY=~/.Xauthority; sudo xterm
다음과 같습니다
No protocol specified
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
의 출력은 sudo -s9999 strace xterm
다음과 같습니다
sudo: invalid option -- '9'
usage: sudo -h | -K | -k | -L | -V
usage: sudo -v [-AknS] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U user name] [-u
user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user
name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user
name|#uid] file ...
답변1
한 가지 가능한 설명은 최근 변경으로 인해 X 쿠키 파일의 위치가 ~/.Xauthority
표시된 위치 중 하나 에서 변경되었다는 것입니다 $XAUTHORITY
. X 쿠키 파일에는 X 서버에 연결할 때 X 응용 프로그램이 제공해야 하는 비밀번호가 포함되어 있습니다. (1부 참조이 답변배경에 대해 자세히 알아보세요. )
XAUTHORITY
변수가 삭제되지 않았는지 확인하세요 sudo
. 다음 줄을 파일 visudo
에 추가하려면 다음을 실행하세요 .sudoers
Defaults env_keep += XAUTHORITY
관련 가능성은 사용자 환경에 X 쿠키가 없으면 XAUTHORITY
X 쿠키가 에 저장된다는 것입니다 ~/.Xauthority
. HOME
환경 변수가 보존되지 않으면 sudo
아래에서 실행되는 X 응용 프로그램이 올바른 쿠키가 없는 쿠키를 sudo
찾습니다 . ~root/.Xauthority
가장 편리한 것부터 덜 편리한 것까지 이 문제를 해결하는 세 가지 간단한 방법이 있습니다.
- 이
env_reset
옵션을 끄고sudoers
(대상 사용자로 임의의 명령을 실행할 수 있는 경우 실제 보안상의 이점은 없음env_reset
) 설정하지 마십시오set_home
. 이런 식으로~/.Xauthority
under는sudo
여전히 호출 사용자의 홈 디렉터리를 참조합니다. - 위의 변수를
sudo
유지하고 기본값인 경우에도 X 세션 시작 파일에 설정하도록 지시합니다 .XAUTHORITY
XAUTHORITY
XAUTHORITY
sudo
예를 들어 다음을 실행하여 사용자의 홈 디렉터리에 대한 세션 내 호출을 사용하여 설정합니다 .sudo env XAUTHORITY=${XAUTHORITY:-~/.Xauthority} xterm