![即使权限正确,也无法读取文件](https://linux22.com/image/692274/%E5%8D%B3%E4%BD%BF%E6%9D%83%E9%99%90%E6%AD%A3%E7%A1%AE%EF%BC%8C%E4%B9%9F%E6%97%A0%E6%B3%95%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6.png)
我有一个对 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
?
答案1
您需要将文件放在其他目录中,不是下/root
。此类文件旨在被访问仅有的由系统管理员管理,允许任何其他用户进入是一个非常糟糕的主意。
从目录列表中可以清楚地看到,权限/root
仅允许 root 读取和写入该目录。其他所有用户都没有权限。这就是用户 prosody 无法遍历该目录的原因。
drwx------ 7 root root 4.0K Oct 23 17:20 ..
答案2
只需授予 prosody 进入目录的权限和执行权限
chmod 701 /root