/var/www 的默认权限

Hos*_*and 44 php permissions apache2 chmod

我试图打开一个文件并在/var/www文件夹中用 PHP 写入它但它不起作用所以我做了

sudo chmod 777 /var/www
Run Code Online (Sandbox Code Playgroud)

现在我想将权限设置为/var/www默认值。
什么是默认权限/var/www

tho*_*ter 58

/var/www自身的默认权限是一个非常标准的权限: ownerroot:root和 mod 755

至于里面 的任何内容/var/www,这是您有权自行决定将什么放入其中以及其中的所有内容应具有的权限的罕见目录之一。但最有意义的是:

  • 大多数文件应该可由最常写入的用户或组写入。您可以将它们设置为由您的用户帐户拥有。或者为您的开发人员设置一个自定义组。或者,如果文件很少被修改并且您想要良好的安全性,您可以使用root:root并在极少数情况下只修改它们的 sudo 。

  • 大多数文件应该不会是世界可写的。因此,644对于文件,755对于目录是合适的(或664775,如果你想给一组写访问)。

  • 这是建议设置任何的它是由Web服务器可写,即www-data,除了任何特定文件的网页脚本要能写。如果是这样,最好将这些文件的用户或组设置为 ,而www-data不是使它们可全局写入。请注意,任何时候www-data用户可以写入 Web 根目录中的任何文件,无论是通过在这些文件上设置用户或组,还是将它们设置为全局可写,这都是一个潜在的安全问题。世界可写只是两者中最糟糕的一个。

  • 在这里被评为最具决定性的答案 (2认同)
  • 现在,这是一个非常好的答案。:) (2认同)

cha*_*aos 34

此文件夹的权限是:

chmod 755 /var/www/
Run Code Online (Sandbox Code Playgroud)

文件夹内的文件是:

chmod 644 /var/www/file
Run Code Online (Sandbox Code Playgroud)


kam*_*mil 11

确保该组是“/var/www”上的 www-data。

sudo chgrp www-data /var/www
Run Code Online (Sandbox Code Playgroud)

使其可写

sudo chmod 775 /var/www
Run Code Online (Sandbox Code Playgroud)

为子文件夹设置组 ID

sudo chmod g+s /var/www
Run Code Online (Sandbox Code Playgroud)

将您的用户名添加到组

sudo useradd -G www-data [USERNAME]
OR
usermod -a -G www-data [USERNAME]
Run Code Online (Sandbox Code Playgroud)

给自己所有权

sudo chown [USERNAME] /var/www/
Run Code Online (Sandbox Code Playgroud)

  • 那是**不是**/var/www 的默认权限,而且在安全方面让整个网络根目录可由 www-data 写入是一个**非常**的坏主意。仅当 web 脚本需要对特定文件的写访问权限时才这样做,即使如此,也只对那些特定文件执行此操作,而不是对整个 web 根目录执行此操作。无论如何,OP 并没有说他需要这样做,所以这根本不应该是建议。 (10认同)
  • 此外,将自己添加到 www-data 组并以这种方式对待该组也是一个非常糟糕的主意。你从哪里读来做到这一点?这是*特别*糟糕的建议,几乎是恶意的。当您需要授予组访问权限时,创建您自己的组:不要重复使用供守护程序内部使用的非特权组。 (3认同)