저는 Suse Linux 11.04를 실행하고 있습니다. 내 문제는 루트로 쉘에 다시 로그인하면 xauth*****
새 Xauthority 파일이 디렉토리에 생성된다는 것입니다 /root/
. 셸을 종료한 후 .xauth
일부 파일이 남습니다. 다른 시스템에서도 시도했지만 이런 일은 발생하지 않았습니다. 또한 XAUTHORITY
환경 변수가 root
시스템의 다른 사용자에게만 설정되고 다른 사용자에게는 설정되지 않는 이유는 무엇입니까?
man xdm
XAUTHORITY
환경변수에 대한 설명은 다음과 같습니다.
DisplayManager.DISPLAY.userAuthDir
xdm이 일반 사용자 인증 파일($HOME/.Xauthority)에 쓸 수 없으면 이 디렉토리에 고유한 파일 이름을 만들고 환경 변수 XAUTHORITY가 생성된 파일을 가리킵니다. 기본적으로 /tmp를 사용합니다.
그래서 내 시스템에서는 다음을 수행합니다.
xauth
권한 파일 사용/root/.xauthPpRsfU
xauth>
로그아웃했다 [Ctrl+d]
가 다시 로그인했는데 이제 다른 파일을 사용하기 시작하는 것을 보았습니다 .xauth*
.
xauth
권한 파일 사용/root/.xauthq1xt4z
xauth>
xauth
로그인할 때마다 계속해서 다른 파일을 생성해야 하는 이유는 무엇입니까? 또한 기본 위치가 root 인 이유는 무엇입니까 /tmp/
? 구성 파일에서 설정하지 않았습니다 .DisplayManagaer.DISPLAY.userAuthDir
./tmp
xdm
다른 시스템에서는 이 동작을 볼 수 없습니다. RHEL과 Ubuntu에서는 모든 것이 정상입니다.
참고로 이 문제에 직면한 사람은 나뿐만이 아닙니다. 이 기사도 비슷한 것 같아요.`$XAUTHORITY`는 su+tmux에 "아무데도" 나타나지 않습니다..
이 문제를 어떻게 해결할 수 있는지 아는 사람 있나요?
답변1
루트로 로그인한 경우 su
다음을 사용하여 발생할 수 있습니다.pam_xauth
다음에 설명된 대로 이 세션에 대한 새 xauthority 파일을 설정합니다.이 오래된 이메일 스레드.
답변2
오래 전에 나는 같은 질문을 했다. 프로세스 환경에서 이 변수를 내보내거나 설정한 사람. 다행히 쉘 스크립트를 배웠습니다. 이것은 솔라리스에서 작동합니다. Linux에서는 구문 분석 프로세스의 상위 환경이 약간 다를 수 있습니다.
그 당시의 대화를 여러분에게 전해드릴 수도 있습니다.https://groups.google.com/group/comp.unix.shell/browse_thread/thread/a91bf497add5544e/56dd2f64c4029734?hl=en&ie=UTF-8&q=mnikhil+who+exported+this+variable&pli=1#56dd2f64c4029734
envtrace(){
ptree $$ |
while read pid prog
do
/usr/ucb/ps eww $pid
done |
sed -n '
s/^ *//
/^[^0-9]/d
h
s/ .*/:/p
g
s/^.* \('"$1"'=[^ ]*\).*/\1/p
g
/^'"$$"' /q'
}
envtrace 경로 envtrace OSTYPE