심볼릭 링크 디렉터리의 권한 문제

심볼릭 링크 디렉터리의 권한 문제

Ubuntu 14.04에서 실행되는 웹 애플리케이션이 있습니다. AWS의 서버에 애플리케이션을 배포하면 애플리케이션의 배포 서비스가 자동으로 별도의 사용자, 그룹 및 권한을 생성합니다.

nginx응용 프로그램은 이라는 그룹의 일부인 이라는 사용자로 실행됩니다 nginx. SSH 접속 시 다른 사용자로 다음 작업을 수행해야 합니다 michaelmichael. 나는 nginx그 그룹의 구성원이 아닙니다 .

응용 프로그램에는 특정 설정을 수동으로 초기화하기 위해 사용자로서 쓸 /tmp/cache수 있는 디렉토리가 있습니다. michaelmichael이 작업을 시도하면 "권한 거부" 오류가 발생합니다.

다음 단계는 폴더에 대한 권한을 확인하는 것이었습니다. 상황이 혼란스러워지기 시작합니다. 이 디렉토리는 애플리케이션의 여러 반복에서 참조될 수 있도록 심볼릭 링크되어 있습니다. 예를 들어, 제가 쓰려고 하는 실제 디렉터리는 다음과 같습니다. 이 디렉터리에 /var/deploy/my-app/web_head/releases/20150221204050/tmp/cache있으면 ls -l다음과 같은 내용이 표시됩니다.

lrwxrwxrwx 1 nginx nginx 43 Feb 21 20:40 /var/deploy/my-app/web_head/releases/20150221204050/tmp/cache -> /var/deploy/my-app/web_head/shared/cache

내가 ls -l /var/deploy/my-app/web_head/shared볼 수 있다면 이것은 cache다음 권한을 가진 디렉토리입니다.

drwxrwxr-x 14 nginx nginx 4096 Feb 21 20:31 cache

그렇다면 이 디렉터리에 쓰려면 내 사용자를 michaelmichaelnginx 그룹에 추가해야 합니까? Symlink 디렉터리(dir) 또는 디렉터리 자체(dir)에 대한 /releases/권한을 수정해야 합니까 cache?

답변1

뻔한 대답이 때로는 옳은 대답일 때도 있습니다. 디렉터리 cache에 쓰기가 필요 하므로 cache해당 디렉터리에 대한 쓰기 권한이 있어야 합니다. 이 작업을 수행할 수 있다는 사실은 ls -l해당 디렉토리에 대해 필요한 모든 액세스 권한이 있음을 나타냅니다 releases.

nginx사용자를 그룹에 추가하거나 디렉터리 모드 cache(아마도 777)를 변경하여 필요한 액세스 권한을 얻을 수 있습니다 .

관련 정보