public_html 权限

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可以在线查看。

如果用户将较新的文件上传到该public_html文件夹​​,则该文件夹不可见。

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

我缺少什么来允许用户上传他们的文件并允许他们在线查看?

答案1

您需要检查它们的umask设置,因为它控制着新创建文件的权限。大多数发行版将掩码设置为022允许文件组读取和全局读取,但其他发行版的掩码更为严格,仅设置所有者权限。

答案2

正如 staticsan 提到的,这听起来像是一个设置 umask 可以解决的情况。如果你想要更细粒度地控制权限,而又不想让用户创建的每个文件都能被所有人读取,那么你可以使用文件访问控制列表为 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,您可以使用以下方式查看

getfacl public_html

存在一个权衡,因为现在权限并不明显,您必须使用 getfacl 才能查看更多详细信息,但您可以更好地控制权限与全局默认值之间的区别。

相关内容