我已经更改了我的 localhost 文件/var/www/
及其子文件夹的所有权,并授予它 777 权限。但是,每当我在其中添加新文件夹时,新文件夹都不会自动获得该权限。如何永久授予文件夹 777 权限,以便在添加新文件夹或文件时获得相同的权限?
我已经更改了我的 localhost 文件/var/www/
及其子文件夹的所有权,并授予它 777 权限。但是,每当我在其中添加新文件夹时,新文件夹都不会自动获得该权限。如何永久授予文件夹 777 权限,以便在添加新文件夹或文件时获得相同的权限?
您可以随时使用递归选项。
sudo chown -R username /var/www
正如其他人已经提到的那样,授予 777 权限
/var/www
是一个非常糟糕的主意,尤其是在生产中。更好的解决方案是仅将写入权限授予需要修改文件的用户。其中一种方法是:
创建一个新组
将需要修改数据的用户添加
/var/www
到该组/var/www
递归地更改该组的所有权设置
umask
为/var/www
所有新创建的文件都归我们创建的组所有。另一种选择是再次使用 ACL,仅将写入权限授予需要它们的用户。
以下是有关 serverfault 的详细说明。
通常,网络服务器或其他网络服务或系统用户帐户不应对网络服务器提供的文件具有写入权限,因为这会导致任意代码执行的可能性。
You should edit
/etc/apache/envvars
as root with your editor of choice.Example: ALT+F2
gksudo gedit /etc/apache2/envvars
Go to the end of the file and add a line
umask XXX
.Where umask is the binary opposite of the desired permissions value.
For 774 this would be 003. For 777 bad idea it would be 000.
Save.
Restart apache.
Example:
sudo apache2ctl restart
This will only affect files/folders that are newly created by the apache user.
Additional note, read and write is 6 in the user, group, or anyone slot.
新创建文件的权限由umask设置
此外,一些“开箱即用”的解决方案是将您的 http 服务器配置为使用不同的文件夹。如果您使用 Apache,只需编辑它的配置文件。这样,您不必更改 /var/www 的权限,女巫可能是个坏主意(潜在的安全问题)。
And umask is answer for Your question. It can be used to restrict default privileges for newly created folders and files. And distribution developers tend to use it to restrict access to some system folders.
我认为您希望拥有
/var/www
修改文件和目录的写入权限。我认为最好的解决方案是安装apache2-mpm-itk
并在虚拟主机配置文件中添加/etc/apache2/sites-available/default
:并以
chown your-username\: /var/www -Rv
这种方式运行该虚拟主机的 apache 将使用您的 UID/GID 运行,您将能够编辑文件。即使是 PHP 创建的文件也会有你的 UID/GID