如何分配用户www数据将权限写入用户文件夹,而不是将用户写入其他用户文件夹?

时间:2018-06-22 22:58:38

标签: linux apache server debian file-permissions

我正在尝试设置多用户服务器...我需要www-data用户具有对所有用户文件夹的读/写/执行权限,以便Web可以正常加载。 但是我不会让用户访问其他用户的文件夹,所以我将用户文件夹设置为700。

chmod -R 700 /home/username
usermod -a -G username www-data

如果我检查user_group的成员,它将显示www-data作为该组的成员

#members username
#username www-data

但是当我尝试访问网络时,出现权限错误

[core:error] [pid 16069] (13)Permission denied: [client 127.0.0.1:37758] AH00035: access to / denied (filesystem path '/home/username/file') because search permissions are missing on a component of the path

授予775权限可以,但是其他用户可以读取数据

请告知 谢谢!

1 个答案:

答案 0 :(得分:0)

以这种方式进行设置:

rwxr-x--- (750)   /home/user1     Owner: user1    Group: user1
rwxr-x--- (750)   /home/user2     Owner: user2    Group: user2
[...]

并使用户www-data(我假设这是运行您的Apache的用户)成为user1,user2,...组的成员。这样,www-data可以读取和访问用户的主目录。但是用户看不到其他用户的文件。

此外,如果您这样做,则用户不必成为www-data组的成员。

如果确实需要,则可以输入770,但我看不到Apache必须能够在用户目录中写哪些业务。对于我的用户来说,像这样的系统设置将是一个主要的标志,我会向管理员询问(坦率地说,我肯定会删除对我的组的写许可权)。显然,是YMMV,但最好是成为一个伟大的理由。