www 数据和服务器用户

www 数据和服务器用户

我在我的第一个 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 拥有,您有以下几种选择:

  1. 将 www-data 添加到拥有 Web 文件的组,并使文件组可写,例如:

    adduser www-data webdev
    chgrp -R webdev $plugindir
    chmod -R g+w $plugindir
    
  2. 添加 ACL 以允许它:

    setfacl -R -m u:www-data:rwX $plugindir
    

相关内容