我已更改 localhost 文件/var/www/
及其子文件夹的所有权,并赋予其权限 777。但是,每当我在其中添加新文件夹时,新文件夹都不会自动获得该权限。如何才能永久授予文件夹 777 权限,以便如果我添加新文件夹或文件,它也能获得相同的权限?
答案1
您可以随时使用递归选项。
sudo chown -R username /var/www
答案2
和其他人一样已经提到过,授予 777 权限/var/www
是一个非常糟糕的想法,尤其是在生产中。
更好的解决方案是仅向需要修改文件的用户授予写权限。其中一种方法是:
创建新组
将需要修改数据的用户添加到
/var/www
该组递归地将所有权更改
/var/www
为该组设置
umask
为/var/www
,所有新创建的文件都归我们创建的组所有。
另一个选择是再次使用 ACL,仅向需要的用户授予写权限。
通常,网络服务器或其他网络服务或系统用户帐户不应对网络服务器提供的文件具有写权限,因为这会导致任意代码执行的可能性。
答案3
您应该/etc/apache/envvars
以 root 身份使用您选择的编辑器进行编辑。
例如:ALT+F2
gksudo gedit /etc/apache2/envvars
转到文件末尾并添加一行umask XXX
。
其中 umask 是所需权限值的二进制反义词。
对于 774,该值为 003。对于 777馊主意它将是 000。
节省。
重新启动 apache。
例子:sudo apache2ctl restart
这只会影响 apache 用户新创建的文件/文件夹。
补充说明一下,在用户、组或任何人插槽中,读写权限为 6。
答案4
此外,一些“开箱即用”的解决方案是配置您的 http 服务器以使用不同的文件夹。如果您使用 Apache,只需编辑其配置文件即可。这样您就不必更改 /var/www 的权限,这可能是个坏主意(潜在的安全问题)。
umask 就是您的问题的答案。它可用于限制新创建的文件夹和文件的默认权限。发行版开发人员倾向于使用它来限制对某些系统文件夹的访问。