我们有我们的项目/var/www
并且它归用户所有www-data
。
我想创建一个自动化部署,因此我这样做:
- 以用户身份通过 SSH 连接
www-data
- 导航
/var/www/somefolder
- 执行
git pull
以及所有相关内容。
通过 ssh登录www-data
并执行这些操作是否安全?
或者我应该用不同的用户登录然后给他www-data
组?或者用不同的用户登录然后su www-data
做工作?
答案1
问题不在于登录不安全,www-data
而在于让该帐户可以写入整个网站不安全。您应该使用另一个对目录具有写入权限的帐户来管理您的网站文件。该用户应该拥有这些文件(并且通常也属于该www-data
组,但这不是绝对必要的)。然后,您将能够通过使用组权限来指定网站可以做什么以及使用用户权限来指定您的管理帐户可以做什么来设置所需的权限。您可能永远不需要授予others
这些文件的任何权限。
此管理帐户还应能够sudo chmod
(可能sudo chown
)根据需要访问这些文件,以便允许网站对站点中的特定文件夹(例如临时文件夹)具有写入权限。如果您不想允许此用户这样做,则需要为此目的提供文件夹,并要求网站管理员使用。
编辑:您还可以删除文件的读取权限,以将其从网站中删除而不删除它们。但这样做不太安全,因为您可能会在不知道下次上传时将其意外设置回去。这就是为什么我还建议始终编写发布脚本来自动上传文件并进行此类更改,这样它们就永远不会被遗忘。
答案2
我也遇到了这个问题,我们必须确保所有人都具有 www-data 权限。我使用这些命令解决了我的问题。
sudo usermod -aG www-data $USER
sudo chown -R www-data:www-data /var/www/
sudo chown -R $USER /var/www/