xauth에서“잠금 권한 파일 /home/<user>/.Xauthority의 시간 초과”에서이 메시지가 표시되는 이유는 무엇입니까?


32

호스트에 SSH를 시도하는 동안 다음 메시지가 나타납니다 xauth.

/ usr / bin / xauth : 잠금 권한 파일 /home/sam/.Xauthority의 시간 종료

참고 : SSH 연결을 통해 X11 GUI를 원격으로 표시하려고 했으므로 파일을 성공적으로 xauth만들 수 있어야 $HOME/.Xauthority했지만 해당 메시지가 나타내는 것처럼 명확하지 않았습니다.

다음 xeyes과 같은 메시지가 표시된 X11 기반 앱을 실행하려고 합니다.

$ xeyes
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0

이 문제를 어떻게 해결할 수 있습니까?


1
이 문제가 selinux가 시행 모드에 있기 때문에이 페이지가 도움이되었다는 것을 알게되었습니다.이 파일은 처음에 파일을 만들 수 없었
Gav Reichel

답변:


39

실패한 strace원격 시스템에서를 실행 xauth하면 무슨 일이 일어나고 있는지 표시됩니다 xauth.

예를 들어

$ strace xauth list
stat("/home/sam/.Xauthority-c", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
open("/home/sam/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({2, 0}, 0x7fff6c4430e0)       = 0
open("/home/sam/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({2, 0}, 0x7fff6c4430e0)       = 0
open("/home/sam/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0

그래서이 xauth파일을 열려고 시도하고 그것은 이미 존재합니다. 범인 파일은 /home/sam/.Xauthority-c입니다. 원격 시스템에이 파일이 있는지 확인할 수 있습니다.

$ ls -l .Xauthority*
-rw------- 1 sam sam 55 Jul 12 22:04 .Xauthority
-rw------- 1 sam sam  0 Jul 12 22:36 .Xauthority-c
-rw------- 1 sam sam  0 Jul 12 22:36 .Xauthority-l

수정

그것은 밝혀졌다. 해당 파일은의 잠금 파일 .Xauthority이므로 간단히 제거하면 문제가 해결됩니다.

$ rm -fr .Xauthority-*

파일이 삭제 된 상태에서 SSH 연결을 종료 한 다음 다시 연결하십시오. 이렇게하면 xauth성공적으로 다시 실행할 수 있습니다.

$ ssh -t skinner ssh sam@blackbird
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-44-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Sun Jul 12 22:37:54 2015 from skinner.bubba.net
$

이제 우리는 xauth list문제없이 X11 응용 프로그램 을 실행할 수 있습니다.

$ xauth list
blackbird/unix:10  MIT-MAGIC-COOKIE-1  cf01f793d2a5ece0ea58196ab5a7977a

GUI

$ xeyes

                                              ss # 1

문제를 해결하기위한 대체 방법

나는 xauth : 권한 파일 잠금 오류 .Xauthority [linux, ssh, X11] 라는 제목의이 게시물 을 발견 xauth -b했다. xauth의 맨 페이지가 이것을 백업하는 것 같습니다.

 -b      This option indicates that xauth should attempt to break any
         authority file locks before proceeding.  Use this option only to
         clean up stale locks.

참고 문헌


1
해당 잠금 파일이 남겨진 원인을 알고 있습니까?
Gilles 'SO- 악 그만

@Gilles-아니 같은 생각을했다. 나는 그들을 삭제 한 다음을 사용하여 그들을 제어하고있는 것을 탐구하려고 노력해야한다고 생각했다 lsof. 나는 전에 그들을 보았지만 어디에 있는지 기억할 수 없다. 나는 당신과 내가 한 시점 전에 그것들을 논의했지만 사이트에서 그것들에 대한 언급을 찾을 수 없었습니다.
slm

1
권한 파일을 삭제하기 전에 SELinux 문제를 해결해야 할 수도 있습니다. 참조 froebe.net/blog/2015/01/20/...
MrMas

필자의 경우 파일과 디렉토리의 소유자가 올바르지 않습니다 (사용자의 홈 디렉토리를 다른 컴퓨터로 복사 한 후).
Ken Sharp

필자의 경우 / home / user 폴더에 대한 권한 이 root:root대신 되었습니다 user:user. 에 의해 수정되었습니다 chown user:user /home/user.
0andriy

8

문제의 원인은 $ HOME 디렉토리에 대한 쓰기 권한이 없다는 것입니다.

그래서이 메시지가 나타납니다.

/ usr / bin / xauth : 권한 파일 잠금 /home/fooftp/.Xauthority의 시간 종료

권한을 확인한 방법은 다음과 같습니다.

fooftp@for-fun-work:~> ls -l .Xauthority 
-rw-r--r-- 1 fooftp fooftp 1 Sep 14  2015 .Xauthority
# Conlusion: I can write this file: ok

fooftp@for-fun-work:~> rm .Xauthority
rm: cannot remove '.Xauthority': Permission denied
# Conlusion: strange ... I can't delete it 

fooftp@for-fun-work:~> id
uid=1001(fooftp) gid=1000(fooftp) groups=1000(fooftp)
# Conlusion: Yes, I am user fooftp

fooftp@for-fun-work:~> ls -ld .
dr-xr-xr-x 14 fooftp fooftp 4096 Sep 14  2015 .
# Conlusion: Bug found :-)
# The permissions should be "rwx" for you.

이것이 문제인 경우 $ HOME에 대한 쓰기 권한이 있는지 확인해야합니다.

chmod u+rwX $HOME

3

문제를 파악하기 전에 나를 괴롭힌 질문에 대한 또 다른 대답이 있습니다. 이 문제는 Fedora OS의 버그이며 나중에 알아 낸 파생물입니다. 문제가 허용 된 답변으로 표시되지 않았거나 Fedora, RedHat, Korora 등이 아닌 경우 도움이되지 않습니다.

문제

slm 사용자가 말했듯이 strace를 실행하면 문제가 있음을 알 수 있지만이 특정 버그의 경우 출력이 다릅니다.

$ strace xauth list
  ...
  stat64("/home/USER/.Xauthority-c", 0xbff23280) = -1 ENOENT (No such file or directory)
  open("/home/USER/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
  rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
  rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
  nanosleep({2, 0}, 0xbff232c8)           = 0
  open("/home/USER/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
  rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
  rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
  nanosleep({2, 0}, 0xbff232c8)           = 0
  open("/home/USER/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied) 
  ...

분명히 이것은 권한이 거부 된 EACCES 반환 코드를 나타냅니다. 이것은 ESMIST 리턴 코드를 가진 User slm의 문제점과 다릅니다. 즉, File이 존재합니다. 따라서 EACCES 리턴 코드의 경우 가장 먼저 확인해야 할 것은 다음과 같습니다. 내 홈 권한을 설정하여 홈 디렉토리에 쓸 수 있습니까? 먼저 자신의 사용자에 대한 홈 디렉토리에 쓰기 플래그가 있는지 확인해야합니다. 그렇게하면 아래 설명 된 버그의 피해자 일 수 있습니다.

버그

몇 번의 Google 검색을 통해 마침내 비슷한 문제가있는 사람을 찾을 수 있었고 Fedora 버그 보고서로 연결되었습니다. 그것에 대해 관심이있는 사람들은 https://bugzilla.redhat.com/show_bug.cgi?id=772992

해결 방법

이 문제에 대한 해결 방법 :

#verify you're not crazy
$ xauth list
  /usr/bin/xauth:  timeout in locking authority file /home/USER/.Xauthority
#use restorecon to reset it all
$ /sbin/restorecon -v -v /home/USER/.Xauthority 
$ /sbin/restorecon -v -v -R /home/USER/
#log out of the remote system
$ exit

SSH를 다시 ​​시작하면이 시점에서 문제가 없으며 X- 세션을 다시 성공적으로 전송할 수 있어야합니다.


편집 (및 다른 대안) :

가능한 한 완전하게하기 위해 다른 사용자는 위의 수정 사항이 효과가 없다고 버그 보고서에 언급했습니다. 이 문제를 해결하기위한 또 다른 시도는 다음과 같습니다 (개인적으로이 해결 방법을 확인하지 않았습니다).

# setsebool -P use_nfs_home_dirs 1

다른 사람은 내가 모르는 GDM에 대해 언급합니다. 그것이 당신과 관련이 있다면 나는 BugZilla에서 그의 게시물을 읽고 그의 의견이 당신에게 어떤 의미가 있는지 확인하는 것이 좋습니다.


1
모든 길이에서 이것은 분명하지 않습니다. 무엇이 문제입니까? 해결책 / 해결 방법은 무엇입니까? 무엇을합니까? 솔루션 # 1이 작동하지 않는 시점은 언제입니까?
Scott

나는 당신이 무엇을 요구하는지 이해하지 못합니다. 그 질문에는 꽤 분명한 문제가있었습니다. 솔루션 1에는 해당 문제의 변형에 대한 명확한 솔루션이 있습니다. 솔루션 1은 문제가 자신의 답변에 무엇인지 구체적으로 나타내는 명확한 방법을 가지고있었습니다. 위에서 지적한 것처럼 내 문제는 분명히 달랐기 때문에 문제를 해결하는 솔루션도 분명히 다릅니다. 내가 당신에게 내 질문이라고 생각하는 것을 분명히하기 위해 무엇을 명확히해야합니까?
searchengine27

나는 대답을 약간 업데이트하려고 노력했지만 솔직히 말해서 문제가 무엇인지 모른 채 그보다 더 명확하게하는 방법을 모르겠습니다.
searchengine27

1
확정 및에 CentOS 6.9에 대한 해결로 해결할 문제
KAP

0

SELinux 구성은 가장 먼저 체크 아웃해야합니다 ...

*/usr/sbin/sestatus*

또는

*/usr/sbin/sestatus -v*

SELinux 구성이 "강제"로 설정되어 있으면 "xauth" 문제 가 발생할 수 있습니다 .

 /usr/sbin/setenforce 0

문제의 근본 원인으로이 문제를 제외 할 수 있도록 다음과 같이 임시로 "퍼미 시브" 모드로 설정할 수 있습니다 .

그런 다음 SELinux 학습서에 따라 적절한 구성을 설정하거나 다른 보안 방법을 선호하는 경우 사용 안함으로 설정하십시오 (f.ex. RHEL v.6에서 / etc / selinux / config 구성 파일을 편집하여 )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.