我有一个对 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