public_html权限

我有一个用户的public_html文件夹。 我根据在线说明更改权限:

chmod 701 /home/* chmod 705 /home/*/public_html chmod 604 /home/*/public_html/*.html chmod 705 /home/*/public_html/cgi-bin 

并且已经在public_html中的文件可以在网上看到。

如果用户将较新的file upload到public_html文件夹,则不可见。

我也跑了chcon -R -t httpd_user_content_t home/*/public_html

我错过了什么让用户上传他们的文件,并允许他们在网上看到?

你需要检查他们的umask设置,因为它控制着新创build文件的权限。 大多数发行版将掩码设置为022 ,这将使文件组读取和世界读取,但其他发行版具有更严格的掩码,它将只设置所有者权限。

正如staticsan提到的,这听起来像是一个设置umask将会修复的情况。 如果你想更精细地控制权限而不使用户创build的每个文件都被世界读取,你可以使用文件访问控制列表来设置public_html目录的默认值,以供其他读取和执行

 setfacl --set d:o:rx /home*/public_html 

无论umask设置为什么,如果用户可以写入该目录,则文件默认值将始终为o + r(x表示目录)。 您的ls -l输出将如下所示:

drwxrwxr-x + 3用户用户4096 2009-12-02 21:30 public_html /

权限结尾处的加号显示有一个ACL,您可以使用该ACL进行查看

 getfacl public_html 

从现在开始,权限并不明显,你必须得到更多的细节,但是你可以更好地控制权限与全局缺省的区别。