我的服务器上安装了 ACL。我通过 FTP 维护我的 Web 文档和 PHP 脚本。我的一些 PHP Web 应用程序旨在创建/更新/删除 Web 文档并进行文件上传。
有人能为我提供有关文件和目录的正确 SETFACL 设置的建议吗,以便我能够 FTP,同时使我的 PHP 应用程序能够按照上述说明执行,同时又不会使我的服务器暴露于安全漏洞。
目前,我将某些目录和文件权限设置为 0777,其所有者/组为“nobody”。
非常感谢您帮助我。
答案1
我在以下回答中用到了一个例子Linux 扩展 ACL 与“常规”权限之间的干扰,为方便参考,复制于此:
chown --recursive $username:$userrole /home/data/private/$datadir
chmod --recursive u=rwx,g=,o= /home/data/private/$datadir
# remove previous ACLs
setfacl --recursive --remove-all /home/data/private/$datadir
# User/group access for owner, group leader and web server
setfacl --recursive -m u:$username:rwx /home/data/private/$datadir
setfacl --recursive -m g:RGLeader:rx /home/data/private/$datadir
setfacl --recursive -m u:www-data:rwx /home/data/private/$datadir
# Copy access modes to default access modes
getfacl --access /home/data/private/$datadir | setfacl --recursive -d -M- /home/data/private/$datadir