0

저는 Ubuntu Lucid에서 Trusty로 마이그레이션 할 웹 응용 프로그램이 있습니다. 응용 프로그램은 유닉스 도메인 소켓을 통해 Nginx와 통신합니다 (000의 umask로 생성됨). Lucid에서는이 설정에 아무런 문제가 없었습니다. 명쾌한에Ubuntu Lucid와 Trusty 사이의 Unix 도메인 소켓 권한

: :이 참조

*51 connect() to unix:/opt/run/skyhook/skyhook.socket failed (13: Permission denied) while connecting to upstream, client 

두 서버 모두에 대한 사용 권한을 검사 : 그러나, 트러스티에, 동일한 사용 권한 설정을 사용하여, Nginx에 나에게 다음과 같은 오류를 제공

$ sudo ls -lh /opt/run/skyhook/skyhook.socket 
srwxrwxrwx 1 skyhook skyhook 0 2014-08-21 17:09 /opt/run/skyhook/skyhook.socket 
$ sudo sudo -u www-data ls -lh /opt/run/skyhook/skyhook.socket 
srwxrwxrwx 1 skyhook skyhook 0 2014-08-21 17:09 /opt/run/skyhook/skyhook.socket 

신뢰할 수있는 경우 :

두 서버 모두 동일한 사용 권한입니다. Nginx는 우분투에서 www 데이터로 실행됩니다. 777 권한을 사용하면 www- 데이터가 소켓과 상호 작용할 수는 있지만 예상 할 수는 없습니다. 무슨 일 이니?

UPDATE :

/opt/run/skyhook의 권한 명쾌한하고 신뢰할 수 모두에서 동일합니다

의 차이는 사소한 /opt/run를 들어
$ sudo ls -lhd /opt/run/skyhook 
drwxrwx--- 2 skyhook skyhook 4.0K Nov 4 15:36 /opt/run/skyhook 

. 명쾌한에 : 믿을에

$ sudo ls -lhd /opt/run/ 
drwxrwxr-x 4 www-data www-data 4.0K 2014-01-27 18:11 /opt/run/ 

: /opt 모두 들어

$ sudo ls -lhd /opt/run/ 
drwxr-xr-x 4 root root 4.0K Nov 4 09:33 /opt/run/ 

은 동일합니다 :

$ sudo ls -lhd /opt/ 
drwxr-xr-x 7 root root 4.0K 2013-06-07 17:15 /opt/ 

그러나, 나는 상위 디렉토리를 벗어나는 조상이 영향을 표시되지 않습니다 이?

+1

'/ opt/run/skyhook /'에 대한 사용 권한은 무엇입니까? 'www-data'가 접근 권한을 가지고 있습니까? – Kevin

+0

비슷하게,'/ opt/run'과'/ opt' 자체. – twalberg

+0

상위 디렉터리 사용 권한을 반영하도록 질문을 업데이트했습니다. –

답변

0

/opt/run/skyhook 디렉터리는 a) skyhook 사용자 및 b) skyhook 그룹의 구성원에게만 사용 권한을 부여하는 것으로 나타납니다. www-data/opt/run/skyhook 디렉토리에있는 파일에 액세스 할 수있는 시스템에

는, 그것이 다른 시스템에서 같은 구성원이 않지만 www-data에서, skyhook 그룹의 구성원이 아닌 가능성이 높습니다 경우입니다.

은 어느 skyhook 그룹에 www-data를 추가하여, 또는이 /opt/run에 대한 사용 권한 비슷한 모양, /opt/run/skyhook에 세계에 실행 권한을 읽기 /를 제공함으로써 해결할 수 있습니다.

+0

결국 어리석은 실수.나는 대부분 손으로 조립 한 서버에서 관리되는 구성 서버로 이동하고 있으므로 이처럼 모호하지만 아직 중요한 세부 정보는 어딘가에서 성문화됩니다! –