“stat” 显示“权限被拒绝”,即使所有权限都已到位

“stat” 显示“权限被拒绝”,即使所有权限都已到位

我有这个:

ls -al /home/my_user/dir1/dir2/file1.txt
-rwxr-xr-x 1 http http 2798 Dec 30 18:18 /home/my_user/dir1/dir2/file1.txt

但是,我无法说明:

sudo -u http stat /home/my_user/dir1/dir2/file1.txt
stat: cannot stat '/home/my_user/dir1/dir2/file1.txt': Permission denied

为什么?如何解决这个问题,而不必chmod 777 <path>,有没有更合适的方法

答案1

我认为您需要在获取文件本身之前验证路径中涉及的每个文件夹的权限。

许多 Linux 发行版将目录内每个文件夹的权限默认为 (0700)(意味着只有用户自己才允许读/写/执行),/home这意味着如果用户拥有具有该权限的my_user文件,则用户无法访问它,因为我上面提到的默认权限将阻止它。/home/my_user/dir1/dir2/file1.txt0755http

我的猜测是,当您ls -al /home/my_user/dir1/dir2/file1.txt使用除 之外的用户执行 was时,该用户实际上可以读取该文件。如果是这种情况,您必须使用或http等工具更正所有目录的权限(如果您想更具体的话)。chmodsetfacl

我希望这有帮助。

相关内容