允许用户写入 /var/www 目录的最佳方法是什么?

允许用户写入 /var/www 目录的最佳方法是什么?

在我的笔记本电脑上进行测试时,我只需将 的每个子目录 chown/var/www到我的myuser:www-data即可。但是,现在我正在设置面向公众的服务器,我想知道这是否是正确的方法?如果不是,允许非 root 帐户写入 的最佳方法是什么/var/www

答案1

一般来说,我会将目录 chown 设置为myuser:root,并将模式设置为0755(对于目录;0644对于文件)。

我不会让他们成为www-data组,因为你的 Web 服务器在该用户/组下运行。如果有人入侵了你的 Web 服务器,你肯定不希望他们能够在任何地方写入文件。你确实希望确保文件可读但是www-data你可以通过设置“其他”的权限来允许它。

另一个选择是让/var/wwwroot 完全拥有,并始终使用sudo它将文件复制到其中。这可以帮助您在更改网站之前仔细考虑自己在做什么,但并不适用于脚本更新。

答案2

我将保留默认的所有权和权限,并使用 Posix ACL 向需要它的用户授予写权限。

手册页acl(5)提供了很好的概述和手册页getfacl(1)setfacl(1)将告诉您如何实际读取和写入 ALC。

答案3

一般来说,我做的事情和你做的类似。如果是单个用户需要访问,我会将 /var/www/htdocs 分配给该用户,然后就完成了。如果多个用户需要远程访问,我建议使用 wiki、wordpress 或其他可以为您管理访问权限的 CMS。执行此操作的最佳方法确实会因您的用例而异。如果您能更清楚地了解您要用它做什么以及您需要什么。您将得到关于如何正确配置它的更好的答案。

答案4

您可能应该将站点设置为虚拟主机,然后可以使用 /srv/sites/yourdomain.com/ 作为或作为文档根目录。然后,创建一个 yourdomain 组,或者直接将其命名为“webadmin”或其他名称,然后将您的用户添加到该组。

相关内容