我想通过 cgi 脚本访问用户目录。我成功地在目录上设置了 acl,但脚本在尝试访问该目录时仍然显示“权限被拒绝”。我改用 apache 并遇到同样的问题(因此这不是 web 服务器/脚本问题)。我遗漏了什么?
# getfacl /home/pmedrano/Maildir/cur/ getfacl:从绝对路径名中删除前导“/” # 文件:home/pmedrano/Maildir/cur/ # 所有者: pmedrano # 群组:pmedrano 用户::rwx 用户:apache:rx 团体:: - - 组:apache:rx 掩码::rx 其他:: - - 默认值:用户::rwx 默认:用户:apache:rx 默认:组::--- 默认:组:apache:rx 默认值:掩码::rx 默认:其他::--- # su -s /bin/bash apache bash-4.2$ ls /home/pmedrano/Maildir/cur/ ls:无法访问 /home/pmedrano/Maildir/cur/:权限被拒绝 bash-4.2$ whoami 阿帕奇 bash-4.2$ getfacl /home/pmedrano/Maildir/cur/ getfacl:/home/pmedrano/Maildir/cur/:权限被拒绝 bash-4.2$
答案1
你很可能已经SELinux已启用 - 无论权限如何,这都会阻止 Apache 访问您的 Maildir。
您可以
- 完全禁用 SELinux
/etc/sysconfig/selinux
- 不推荐 - 授予 Apache 访问 Maildir 文件的权限 - 查看
audit2allow
工具
请注意,错误配置 SELinux 可能会对服务器的安全性产生负面影响。