'ls' を実行する権限が拒否されました

'ls' を実行する権限が拒否されました

私はサーバーを root ユーザーとして実行していますが、それにもかかわらず、コマンドを実行するとls次のエラーが発生します。

bash: /bin/ls: Permission Denied.

このファイルの権限を変更しようとしましたchmodが、権限も拒否されました。原因は何でしょうか?

答え1

これにはいくつかの原因が考えられます。

  1. ファイルシステムがマウントされていますnoexec
  2. fsck で修復する必要があるファイルシステムの破損。
  3. ファイルシステムが外部であり、権限の不適切な変換により権限が拒否されます。
  4. バイナリを保持するディレクトリに実行ビットが設定されていない (トラバーサルの問題が発生する)
  5. ディレクトリ内のサブディレクトリに実行ビットが設定されていません (バイナリが複数のディレクトリにネストされている場合にのみ適用されます)
  6. バイナリには、ユーザー ID またはグループ ID の読み取りビットと実行ビットが設定されていません。
  7. アカウント名に と表示されていても、実際には root (UID 0) ではありません。 可能性は低いですが、これはあり得ます。は、権限チェックをバイパスする「特別な」ID である UID 0 と 100% 同じではない rootことに注意してください。rootrootしかし、そのアカウントはマップされたUID 0 に。
  8. SELinux/grsecurity ルールがすべてを拒否します。(Janne Pikkarainen さん、ありがとうございます。この煩わしさについて少し精神的にブロックされていました。)
  9. 1 つ以上のバイナリが侵害されています。その場合、実行しているものはすべて信頼できません。

何が起こっているのかを本当に理解するには、より多くの情報が必要です。

関連情報