运行“ls”的权限被拒绝

我以root用户身份运行我的服务器,但是尽pipe如此,当我运行命令ls我得到此错误:

 bash: /bin/ls: Permission Denied. 

我试图用chmod改变这个文件的权限,但是权限也被拒绝了。 这是什么原因?

这有几个潜在的原因。

  1. 文件系统挂载noexec
  2. 文件系统损坏需要用fsck修复。
  3. 文件系统是外部的,不正确的权限转换会导致拒绝的权限。
  4. 保存二进制文件的目录没有设置执行位(导致遍历问题)
  5. 目录中的子目录没有设置执行位(仅在二进制文件嵌套在多个目录中时才适用)
  6. 二进制文件没有为您的用户标识或组标识设置读取和执行位。
  7. 即使帐户名称为root ,您也不是真正的根(UID 0)。 虽然不可能,但这是可能的。 请注意, root与UID 0不是100%相同,UID 0是绕过特权检查的“特殊”ID。 但是, root帐户映射到UID 0。
  8. SELinux / grsecurity规则拒绝一切。 (谢谢Janne Pikkarainen!对这种烦恼有一点心理障碍。)
  9. 一个或多个二进制文件受到攻击。 在这种情况下,你不能相信你正在运行的任何东西。

需要更多的信息才能真正理解正在发生的事情。