我最近买了一个VPS,从中学到了很多。我设法创建了一个 ftp 用户,将其设置为我站点文档根目录的所有者,将其添加到 www-user 组,将该组设置为文档根目录的组并授予文件 0775 (0664) 权限。
我的问题是,如果 www-data 可以访问和修改文档根目录中的文件,其他站点的脚本是否也能够修改这些文件(现在使用 .htaccess 对公众进行保护)?
注意:我希望 www-data 具有写入权限,因为 PHP 脚本应该能够修改文件。
如何解决这个问题?
我最近买了一个VPS,从中学到了很多。我设法创建了一个 ftp 用户,将其设置为我站点文档根目录的所有者,将其添加到 www-user 组,将该组设置为文档根目录的组并授予文件 0775 (0664) 权限。
我的问题是,如果 www-data 可以访问和修改文档根目录中的文件,其他站点的脚本是否也能够修改这些文件(现在使用 .htaccess 对公众进行保护)?
注意:我希望 www-data 具有写入权限,因为 PHP 脚本应该能够修改文件。
如何解决这个问题?
要解决此问题,您必须使用自己的凭据运行每个站点实例,而不是使用
www-data
.如果使用
apache
,您可以使用apache-mpm-itk
及其AssignUserID
参数将特定用户/组分配给每个不同的站点/虚拟主机。使用这种方法,apache
,php
,cgi
, ecc 都将使用分配的凭据运行。另一种特定于 php 的方法是
suPHP
,它基本上使用特定的用户/组凭据运行您的 php 脚本。我认为最好不要让 Apache 用户或组写入所有文档根目录。是否使用 apache-mpm-itk/suPHP/mpm-peruser,也许您应该检测 Apache 真正需要写入的文件和目录(每个站点),并仅授予对这些文件/目录的组写入权限。