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)
更多信息在这里。