linux - Linux 目录列表中只有问号

标签 linux terminal

我正在我的 .ssh 主目录中列出目录,这给了我一个奇怪的结果:

ls -lsa .ssh/
total 0
? ?--------- ? ? ? ?            ? . ·
? ?--------- ? ? ? ?            ? .. ·
? ?--------- ? ? ? ?            ? authorized_keys ·

奇怪的是,这只发生在一个用户身上,而且只发生在这个特定的目录中。如果我在 su -l 之后执行 ls,一切都会按预期进行。另一个奇怪的事情是,我的 xterm 以红色闪烁字体显示目录列表! 任何想法是什么导致这种情况发生?

谢谢!

编辑:
这是以 root 身份列出的目录:

ls -lsa
total 52
4 drw-------  2 sdd sdd 4096 Feb 10 15:57 .
4 drwx------ 16 sdd sdd 4096 Feb 10 15:57 ..
4 -rw-------  1 sdd sdd 1628 Feb 10 15:57 authorized_keys

我正在使用 ext3。

编辑2:
谢谢你的答案,但我仍然得到这个:

chmod -R 600 /home/sdd/.ssh
ls -lsan _ssh.old/
total 0
? ?--------- ? ? ? ?            ? .
? ?--------- ? ? ? ?            ? ..
? ?--------- ? ? ? ?            ? authorized_keys

最佳答案

当用户不能对文件执行 stat()(需要执行权限),但可以读取目录条目(需要对目录具有读取权限)时,就会发生这种情况。因此,您会获得目录中的文件列表,但无法获得有关文件的任何信息,因为它们无法读取。 :) 如果您有一个具有读取权限但不能执行的目录,您会看到这个。有人可能试图错误地保护 .ssh 目录 - 它应该是“chmod 0700 .ssh/”并且归拥有主目录的用户所有。很可能,有人按照说明保护 .ssh 文件,但将其应用于 .ssh 目录。 :)

如果您对任何目录执行 chmod 0600 或 0400,您可以轻松重现此行为。给目录添加执行权限,就可以正常工作了。

关于linux - Linux 目录列表中只有问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/541533/

相关文章:

linux - 为什么非 super 用户可以删除root创建的文件?

linux - Amazon EC 2 上用户目录中的 Apache VirtualHost

c - Ctrl-Up 和 Ctrl-Down 的 ASCII 码

linux - 如何在Linux终端中运行spark scala程序?

python - 如何锁定终端运行 perl、obj c、c++、python 和 ruby​​ 等脚本的源代码?

linux - 如何在 Tcl 中使用 sed 搜索带有大括号的模式

linux - 为多个发行版和版本构建 Linux 包

linux - 查找文件名中包含字符串的文件并解压缩

matlab - 从终端运行 Octave 脚本时如何隐藏绘图输出?

linux - EPOLLET 的用例是什么?