我在我的第一个 VPS 上安装了 WordPress,并且 www-data 用户和我创建的用于登录的用户(我们称之为 user1)存在所有权问题(我禁用了 root 登录)。
我使用 user1 进行 FTP,但我无法覆盖 www-data 拥有的文件,如果我将所有文件 chown 为 user1,我可以覆盖,但 WordPress 无法从仪表板安装任何内容或删除,直到我将所有权归还给 www-data。
我怎样才能同时拥有这两者?FTP 用户能够写入、覆盖文件,并能够从仪表板添加、删除、更新插件?
提前致谢!
答案1
一般来说,让 Web 文件可由 Web 服务器写入是一种不好的安全做法,因为入侵 Web 服务器的用户便可以更改任何 Web 文件。
最佳做法是让其他用户(例如 user1)拥有并可写入 Web 文件,而 www-data 可读但不可写入。现在对于 WordPress 插件目录,您可以让 www-data 始终可写入该目录,或者最好将其保留为只读,直到您需要安装插件,然后将其设置为可写入,安装插件,然后再次删除写入权限。
要使目录可由 www-data 写入但仍然由 user1 拥有,您有以下几种选择:
将 www-data 添加到拥有 Web 文件的组,并使文件组可写,例如:
adduser www-data webdev chgrp -R webdev $plugindir chmod -R g+w $plugindir
添加 ACL 以允许它:
setfacl -R -m u:www-data:rwX $plugindir