用户权限问题 Linux

The*_*ish 3 permissions group files

每次我从“eclipse”创建一个新文件时,我都需要运行这两行代码来获得 r/w 权限:

chmod -R 775 /var/www/folder/filename.extension
Run Code Online (Sandbox Code Playgroud)

和/或

sudo chown -R www-data:www-data /var/www
Run Code Online (Sandbox Code Playgroud)

而且,如果我在该服务器文件夹上复制一些文件,并从浏览器 URL 访问它,例如:

localhost/folder/filename.extension
Run Code Online (Sandbox Code Playgroud)

我收到 Apache 服务器的权限错误。

有没有办法让我摆脱这个问题?

*注意:主要错误发生在我的move_uploaded_file()函数尝试将文件移动到/var/www/MyProject/目录时。

小智 5

使用 SGID 位。

这样做一次,并忘记这个问题:

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

您可能希望对所有子文件夹执行相同的操作:

find /var/www/folder -type d | xargs chmod g+s
Run Code Online (Sandbox Code Playgroud)

并且,以防万一:

find /var/www/folder -type d | xargs chgrp www-data
Run Code Online (Sandbox Code Playgroud)

现在,无论如何,在其下创建的所有文件都/var/www/folder/属于拥有包含文件夹的组。这将允许您创建任何文件或文件夹,而不必担心它们不属于,例如,您想要的www-data组。

请注意,这仅适用于在目录中创建的文件或文件夹。如果文件是在别处创建并移动到目录树中,您仍然需要手动更改所有权。

例子:

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

更多信息在这里