내 debian8 컴퓨터에 있는 기존 인증서를 사용하여 node.js https 서버를 설정하고 싶습니다.
인증서 그룹은 libretodoapi
(node.js 애플리케이션을 실행하기 위해 생성한 사용자/그룹)로 설정됩니다. 권한 640은 파일에 대한 읽기 액세스를 허용해야 합니다.
root@nijin:/# ls -l /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
-rw-r----- 1 root libretodoapi 1704 Jan 11 23:11 /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
즉, 파일에 액세스하려는 시도가 libretodoapi
실패합니다.
root@nijin:/# sudo -u libretodoapi cat /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
cat: /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem: Permission denied
이전 폴더는 모두 루트 디렉터리에 속합니다.
root@nijin:~# namei -lo /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
f: /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
drwxr-xr-x root root /
drwxr-xr-x root root etc
drwxr-xr-x root root letsencrypt
drwx------ root root archive
drwxr-xr-x root root api.libretodo.org
-rw-r----- root libretodoapi privkey1.pem
나는 어딘가에 실수가 있다고 믿지 않습니다. 오히려 이런 동작을 설명할 수 있는 유닉스 권한을 이해하지 못하는 것 같습니다. 내가 뭘 놓쳤는지 아세요?
답변1
계층 구조의 모든 디렉터리(루트( /
)부터 파일의 상위 디렉터리까지)에는 x
사용자/그룹의 권한이 있어야 파일에 액세스할 수 있습니다.
디렉터리에 대한 실행 권한을 통해 사용자는 디렉터리에 액세스할 수 있고, 읽기 권한을 통해 사용자는 해당 내용을 나열할 수 있습니다.