即使权限正确,也无法读取文件

我有一个读取ssl-cert权限的目录:

root@yellowstone:~/certs# ls -lah total 28K drwxr-x--- 2 root ssl-cert 4.0K Oct 23 16:58 . drwx------ 7 root root 4.0K Oct 23 17:20 .. -rw-r--r-- 1 root ssl-cert 2.0K Oct 23 16:58 certificate1.crt -rw-r--r-- 1 root ssl-cert 2.0K Oct 23 16:58 certificate2.crt -rw-r--r-- 1 root ssl-cert 2.0K Oct 23 16:58 certificate3.crt -rw-r----- 1 root ssl-cert 3.2K Oct 23 16:58 privatekey.key -rw-r--r-- 1 root ssl-cert 2.0K Oct 23 16:58 certificate4.crt 

我在组中有一个用户ssl-cert:

 root@yellowstone:~/certs# id prosody uid=116(prosody) gid=124(prosody) groups=124(prosody),115(ssl-cert) 

但是,如果我尝试访问目录或其中的文件,我会得到“权限被拒绝”:

 prosody@yellowstone:/$ cd /root/certs bash: cd: /root/certs: Permission denied prosody@yellowstone:/$ cat /root/certs/certificate4.crt cat: /root/certs/certificate4.crt: Permission denied prosody@yellowstone:/$ cat /root/certs/privatekey.key cat: /root/certs/privatekey.key: Permission denied 

我需要改变什么来访问文件作为用户prosody

您需要将文件放在其他目录中, 而不是放在/root 。 这样的文件只能被系统pipe理员访问,而让其他用户进入这个文件是一个非常糟糕的主意。

从目录列表中可以清楚地看到, /root上的权限只允许root读写该目录。 所有其他人根本没有权限。 这就是为什么用户韵律不能遍历该目录。

 drwx------ 7 root root 4.0K Oct 23 17:20 .. 

只要给予韵律权限进入目录,执行权限即可

 chmod 701 /root