我以 root 用户身份运行我的服务器,但是尽管如此,当我运行命令时ls
仍然收到此错误:
bash: /bin/ls: Permission Denied.
我尝试使用 更改此文件的权限,chmod
但权限也被拒绝。这是什么原因造成的?
答案1
造成这种情况的原因有多种。
- 文件系统已挂载
noexec
。 - 文件系统损坏,需要使用 fsck 修复。
- 文件系统是外来的,权限转换不正确会导致权限被拒绝。
- 保存二进制文件的目录未设置执行位(导致遍历问题)
- 目录中的子目录未设置执行位(仅适用于二进制文件嵌套在多个目录中的情况)
- 二进制文件没有为您的用户 ID 或组 ID 设置读取和执行位。
- 尽管帐户名称显示为 ,但您实际上并不是 root (UID 0)
root
。虽然不太可能,但这种情况是有可能的。请注意,root
并不完全等同于 UID 0,后者是绕过权限检查的“特殊”ID。root
然而,该帐户映射至 UID 0。 - SELinux/grsecurity 规则拒绝一切。(感谢 Janne Pikkarainen!对于这种烦恼,我有点困惑。)
- 一个或多个二进制文件已泄露。在这种情况下,您无法信任正在运行的任何东西。
需要更多信息才能真正了解正在发生的事情。