如何为文件夹及其子文件夹和文件提供读写权限?

我已经更改了/var/www/及其子文件夹上localhost文件的所有权并赋予它777权限。但是,每当我在其中添加新文件夹时,新文件夹都不会自动获得该权限。 如何永久授予文件夹777权限,以便在添加新文件夹或文件时获得相同的权限?

新创建的文件的权限由umask设置

您可以随时使用递归选项。 sudo chown -R username /var/www

正如其他人已经提到的那样 ,在/var/www上提供777权限是一个非常糟糕的主意,特别是在生产中。

更好的解决方案是仅向需要修改文件的用户提供写入权限。 其中一种方法是:

  • 创建一个新组

  • 将需要修改/var/www数据的用户添加到该组

  • 以递归方式将/var/www的所有权更改为该组

  • /var/www上设置umask ,这样所有新创建的文件都归我们创建的组所有。

另一种选择是再次使用ACL,仅向需要它们的用户提供写入权限。

以下是有关serverfault的详细说明 。

通常,Web服务器或其他网络服务或系统用户帐户应该对Web服务器所服务的文件没有写入权限,因为这会打开任意代码执行的可能性。

您应该使用您选择的编辑器以root身份编辑/etc/apache/envvars

示例: ALT + F2
gksudo gedit /etc/apache2/envvars

转到文件末尾并添加一行umask XXX

其中umask是所需权限值的二进制文件。
对于774,这将是003.对于777个坏主意 ,它将是000。

保存。

重启apache。

示例: sudo apache2ctl restart

这只会影响apache用户新创建的文件/文件夹。

附加说明,用户,组或任何插槽中的读写均为6。

此外,一些“开箱即用”的解决方案是配置您的http服务器使用不同的文件夹。 如果您使用Apache,只需编辑它的配置文件。 这种方式你不必更改/ var / www巫婆的权限可能是个坏主意(潜在的安全问题)。

umask是你问题的答案。 它可用于限制新创建的文件夹和文件的默认权限。 分发开发人员倾向于使用它来限制对某些系统文件夹的访问。

我想你想拥有对/var/www写访问权来修改文件和目录。 我认为最好的解决方案是安装apache2-mpm-itk并在虚拟主机配置文件中添加/etc/apache2/sites-available/default

  AssignUserId your-username your-group  

并运行chown your-username\: /var/www -Rv ,这样虚拟主机的apache将与您的UID / GID一起运行,您将能够编辑文件。 即使PHP创建的文件也会有你的UID / GID