web-dev-qa-db-ja.com

Linux dirリストの疑問符のみ

私は私の奇妙な結果を与える私の.sshホームディレクトリでディレクトリリストをやっています:

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

奇妙なことに、これは1人のユーザーに対してのみ発生し、この特定のディレクトリでのみ発生します。 su -lの後にlsを実行すると、すべてが期待どおりに機能します。別の奇妙なことは、私のxtermがdirリストを赤い点滅フォントで表示することです!これを起こしている原因は何ですか?

どうも!

編集:
rootとしての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 for the答えですが、私はまだこれを取得します:

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

これは、ユーザーがファイルに対してstat()を実行できず(実行権限が必要)、ディレクトリエントリを読み取ることができる(ディレクトリに対する読み取りアクセスが必要)場合に発生します。したがって、ディレクトリ内のファイルのリストを取得できますが、ファイルを読み取ることができないため、ファイルに関する情報を取得できません。 :)読み取り権限はあるが実行されないディレクトリがある場合、これが表示されます。誰かがおそらく.sshディレクトリを誤って保護しようとしました-"chmod 0700 .ssh /"であり、homedirを所有するユーザーが所有している必要があります。おそらく、誰かが.ssh fileを保護するための指示に従っていたが、それを.sshディレクトリに適用した。 :)

任意のディレクトリでchmod 0600または0400を実行すると、この動作を簡単に再現できます。実行許可をディレクトリに追加すると、正常に動作します。

95
dannysauer