对我拥有的文件“权限被拒绝”?

Gor*_*son 14 linux filesystems permissions

我的用户 bob 无法访问他(理论上拥有)的文件。我正在运行 Fedora Core 8。显示可能比告诉更容易:

> ls -al .
total 32
drwxrwxr-x 7 bob bob 4096 May 18 14:33 .
drwxrwxr-x 4 bob bob 4096 May 12 15:44 ..
drwxr-xr-x 2 bob bob 4096 June 1 14:22 log

> cd ./log
-bash: cd: log/: Permission denied

> ls -al ./log
ls: cannot access log/..: Permission denied
ls: cannot access log/the.log: Permission denied
ls: cannot access log/.: Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
-????????? ? ? ? ?            ? the.log

> sudo ls -al ./log
drw-rw-r-- 3 bob bob      4096 Jun  2 04:11 .
drwxrwxr-x 7 bob bob      4096 May 18 14:33 ..
-rw-rw-r-- 1 bob bob         0 Jun  1 04:12 the.log
Run Code Online (Sandbox Code Playgroud)

ls -al非常奇怪的脱颖而出。它会列出我无权查看的文件,但不显示权限?

所以问题是,什么会导致这种情况?我该怎么做才能修复它?

Gen*_*mer 19

> sudo ls -al ./log
...
drw-rw-r-- 3 bob bob      4096 Jun  2 04:11 .
Run Code Online (Sandbox Code Playgroud)

看起来 Bob 没有 ./log 的执行权限,所以他不能cd这样做。

> ls -al .
...
drwxr-xr-x 2 bob bob 4096 June 1 14:22 log
Run Code Online (Sandbox Code Playgroud)

表明他确实如此。但看起来它们并不指向同一个文件(不同的权限,不同的修改时间)。

尝试sudo ls -ail ./logls -ail看看是否该inode是一样的。


小智 11

事情比文件系统损坏或 selinux 更简单。如您所见,您缺少日志目录的 x(可执行)权限。实际上对于目录 x 意味着有人能够更改到该目录。只需执行“chmod +x log”来修复该烫发,您就应该能够访问它。


Zor*_*che 6

当文件系统损坏或驱动器出现故障时,我见过类似的情况。修复通常是对文件系统运行fsck并让它更正它发现的错误。