私のユーザー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
ls -al
は非常に奇妙に際立っています。表示する権限がないファイルが一覧表示されますが、権限は表示されませんか?
だから問題は、何が原因でしょうか?それを修復するにはどうすればよいですか?
> Sudo ls -al ./log
...
drw-rw-r-- 3 bob bob 4096 Jun 2 04:11 .
ボブは./logの実行権限を持っているようではないので、cd
を実行できません。
だが
> ls -al .
...
drwxr-xr-x 2 bob bob 4096 June 1 14:22 log
彼がそうしていることを示しています。しかし、同じファイルを指しているようには見えません(異なるアクセス許可、異なるmodtime)。
Sudo ls -ail ./log
とls -ail
を試して、iノードが同じかどうかを確認します。
ファイルシステムの破損やselinuxよりも簡単です。ご覧のとおり、ログディレクトリに対するx(実行可能)権限がありません。実際にはディレクトリxは、誰かがそのディレクトリに変更できることを意味します。そのパーマを修正するために「chmod + xログ」を実行するだけで、それにアクセスできるはずです。
私は、ファイルシステムが破損している場合、またはドライブに障害が発生している場合に、そのようなことを見てきました。修正は通常、ファイルシステムに対して fsck を実行し、見つかったエラーを修正することです。
ファイルには、不変の属性が設定されているか、拡張属性セットのみが追加されています。以前にこれが発生したことがあり、rootでさえファイルを削除できませんでした。
拡張属性は、「lsattr」を介してビューにすることも、「chattr」を介して変更することもできます
また、SE/Linux設定を確認してください。場合によっては、ファイルへのアクセス許可が、アクセスできるかどうかに関係しません。
> Sudo ls -al ./log drw-rw-r-- 3 bob bob 4096 Jun 2 04:11。
理由はわかりませんが、「。」 ./log/のエントリに実行権限がありません。権限は./logの権限と同じである必要があります。
Chmod 755 ./logとchmod 755 ./log/を試してください。そして、どちらかのコマンドがアクセスを修正するかどうかを確認しますか?
それ以外は、ファイルシステム上でfsckを実行することをお勧めします。同期していないように見えるからです。
ディレクトリの所有権を他の誰かに変更してから、Bobに戻してみましたか?ただし、Zoredacheのアドバイスの方が優れています。
より簡潔な回答IMO。
cdで必要な実行権限がディレクトリにありません。
修正:
$ Sudo chmod +x ./log
再帰的に:
$ Sudo chmod -R +x ./log
+ xは実行可能属性を追加しています。 -xを実行すると、いつでも属性を削除できます