为什么我无法访问此 Lets-Encrypt 证书文件,即使我已经设置了该组?

为什么我无法访问此 Lets-Encrypt 证书文件,即使我已经设置了该组?

我想使用我的 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

我不相信某个地方有错误。更确切地说,我认为我不了解可以解释这种行为的 unix 权限。你知道我错过了什么吗?

答案1

层次结构中的所有目录(从根 ( /) 到文件的父目录)都必须具有x用户/组的权限,以便他们能够访问该文件。

目录的执行权限使用户能够访问该目录,而读取权限使用户能够列出其内容。

另请参阅问题执行与读取位。 Linux 中的目录权限如何工作?

相关内容