如何查找特定用户无法访问的文件或文件夹?

如何查找特定用户无法访问的文件或文件夹?

我试图在 Joomla 中安装一些软件包,但出现错误,提示“尝试删除无法访问的文件时出错”。我咨询了软件包开发人员,他们说我需要确保我的 Joomla 安装下的所有文件和文件夹都可以供 Web 服务器访问。我阅读了一些有关find命令及其-perm参数的教程,但我读到的文章没有提到如何检查特定用户的权限;而且它们都是关于检查文件的许可,但没有没有因此。

答案1

目录访问由权限中的“执行”位控制x。该问题可能是由于用户没有可执行权限作为所有者或用户所属的组没有目录上设置的可执行权限。

为了用于find该任务,只需指定目录和标志-user的所有者即可:-not -executable

~$ find -type d -user $USER -not -executable
./foo/bar
./test_access
~$ ls -ld ./foo/bar ./test_access
drw-r-xr-- 2 admin admin 4096 Jan 15 03:36 ./foo/bar
drw-r--r-- 2 admin admin 4096 Jan  4 15:38 ./test_access

对于对权限的组部分感兴趣的情况,您可以找到用户所属的组并对其进行迭代:

for i in $(groups $USER | cut -d':' -f2) ; do find -type d -group "$i" -not -executable ; done

如果两种情况都会扭转任何潜在结果,则问题可能是由于用户不属于可以访问提供问题目录的组的组。

另请注意,Web 服务器通常使用www-data用户/组您可能想使用该用户名或组名来检查权限。

相关内容