我正在使用 PHP,并尝试访问另一个用户的文件夹,但总是收到错误“权限被拒绝”。
我创建了一个组,添加了用户并授予访问权限。但这没有帮助,以下是我所做的(从 root 访问权限):
sudo usermod -a -G mygroup tools
sudo usermod -a -G mygroup user2
sudo chgrp -R mygroup /home/tools/domains/domain.tools.com/public_html/storage/users
sudo chmod -R 2775 /home/tools/domains/domain.tools.com/public_html/storage/users
chmod ug+rwx -R /home/tools/domains/domain.tools.com/public_html/storage/users
现在,当我尝试从用户“工具”(该文件夹所在的位置)访问该文件夹时,我可以轻松完成此操作而不会出现任何问题:
[tools@server ~]$ ls -l /home/tools/domains/domain.tools.com/public_html/storage/users
total 4
drwxrwsr-x 7 root mygroup 4096 Dec 18 17:36 id
但是,如果我尝试从其他用户(在同一组中)访问该文件夹,我会收到此错误:
[user2@server ~]$ ls -l /home/tools/domains/domain.tools.com/public_html/storage/users
ls: cannot access /home/tools/domains/domain.tools.com/public_html/storage/users: Permission denied
我该如何解决这个问题?
答案1
您授予了user2
特定子文件夹的访问权限:/home/tools/domains/domain.tools.com/public_html/storage/users
我认为您无法访问该文件夹的原因user2
是user2
无法访问文件夹层次结构上层的某些文件夹。
解决该问题的一种可能方法是x
向所有用户添加该文件夹上方所有目录的(更改目录)权限。
作为用户tools
(或root
通过使用sudo
),您可以授予x
所有目录的权限(例如):
chmod +x /home/tools
chmod +x /home/tools/domains
chmod +x /home/tools/domains/domain.tools.com
chmod +x /home/tools/domains/domain.tools.com/public_html
chmod +x /home/tools/domains/domain.tools.com/public_html/storage
chmod +x /home/tools/domains/domain.tools.com/public_html/storage/users