我正在运行Apache2 + userdir
上Ubuntu服务器14.04。用户通过AD进行身份验证,并可以通过SSH成功登录到此服务器。每个用户$HOME
具有700
权限以禁止用户更改和读取其他用户文件。
目录/home/public_html
被Apache(www-data:www-data
)拥有并有权775
所以每个用户(组www-data
的成员)可以在他/她的用户名在/home/public_html
创建自己的子目录,并在他/她的$HOME
创建符号链接。下面是用于与用户名jdoe43
的样品用户的示例:
/home/Domain/jdoe43
是$ HOME目录(它有权限700)/home/public_html/jdoe43
是用户jdoe43
一个public_html
目录该符号链接到/home/Domain/jdoe43/public_html
UserDir
指令设置为/home/public_html
。的userdir.conf
其余默认为Ubuntu的安装,以下列出供参考:
<IfModule mod_userdir.c>
UserDir /home/public_html
UserDir disabled root
<Directory /home/public_html/*>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
</IfModule>
我期待着找到合适的权限集的允许
- Apache进程访问文件
/home/public_html/*
- 用户有完全控制自己的
public_html
目录
,并在同一时间不允许
- 用户查看/修改其他用户的$ HOME目录
- 用户查看/修改位于
/home/public_html/
另一个用户的
public_html
目录的内容的内容
所有我用不同的权限尝试结束,或者与Apache不能访问用户的public_html
或与用户至少读取其他用户的访问$HOME
或public_html
。
我发现了几个帖子建议使用SELinux的和配置文件系统拒绝访问其他用户的目录通过许可的方式(像我$HOME
没有将其设置为700
),并在同一时间授权 Apache进程(通过selinux
)访问/home/public_html
及其所有子目录。我还发现一些资源指出,在最近版本的Ubuntu中,selinux
被替换为apparmor
,所以,由于我在这项技术方面的经验有限,因此我决定推迟对其实施的任何移动。
任何建议/建议,非常感谢。谢谢。
Ubuntu或serverexchange是这个问题的最佳场所。 –