只有在Linux diristing的问题
我正在做一个dir列表在我的.ssh主目录,这给了我一个奇怪的结果:
ls -lsa .ssh/ total 0 ? ?--------- ? ? ? ? ? . · ? ?--------- ? ? ? ? ? .. · ? ?--------- ? ? ? ? ? authorized_keys ·
奇怪的是,这只发生在一个用户,只有在这个特定的目录。 如果我在su -l之后做了ls,那么一切都按预期工作。 另一个奇怪的是,我的xterm显示红色闪烁字体的dir列表! 任何想法是什么导致这种情况发生?
谢谢!
编辑:
这是作为根目录的dir列表:
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。
EDIT2:
Thx的答案,但我仍然得到这个:
chmod -R 600 /home/sdd/.ssh ls -lsan _ssh.old/ total 0 ? ?--------- ? ? ? ? ? . ? ?--------- ? ? ? ? ? .. ? ?--------- ? ? ? ? ? authorized_keys
当用户无法对文件(需要执行权限)执行stat()操作时,会发生这种情况,但可以读取目录条目(这需要对目录进行读取访问)。 所以你得到目录中的文件列表,但不能得到关于文件的任何信息,因为它们不能被读取。 :)如果你有一个具有读权限但不执行的目录,你会看到这个。 有人可能试图错误地保护.ssh目录 – 它应该是“chmod 0700 .ssh /”,并由拥有homedir的用户拥有。 更可能的是,有人正在按照说明来保护.ssh 文件,但将其应用于.ssh目录。 🙂
如果您在任何目录上执行chmod 0600或0400,则可以轻松地重现此行为。 将执行权限添加到目录,它会正常工作。