54

私は.sshホームディレクトリでディレクトリリストを作成していますが、奇妙な結果が得られます:

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

奇妙なことに、これは 1 人のユーザーに対してのみ、この特定のディレクトリでのみ発生します。su -l の後に ls を実行すると、すべてが期待どおりに機能します。もう 1 つの奇妙な点は、私の xterm が 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
4

1 に答える 1

101

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

任意のディレクトリでchmod0600または0400を実行すると、この動作を簡単に再現できます。dirに実行権限を追加すると、正常に機能します。

于 2009-02-12T15:01:19.390 に答える