sam*_*ise 265 linux permissions chmod
这是一个关于文件权限的规范问题,以及为什么777 是“破坏性的”。
我不是在问如何解决这个问题,因为服务器故障(重新安装操作系统)上已经有大量的参考资料。为什么它会做任何破坏性的事情?
如果你曾经运行过这个命令,你几乎会立即破坏你的操作系统。我不清楚为什么取消限制会对现有流程产生任何影响。例如,如果我没有对某些内容的读取访问权限,并且在终端中快速输入错误后,我现在突然可以正常访问...为什么这会导致 Linux 崩溃?
vor*_*aq7 354
首先是一个小术语吹毛求疵:chmod不删除权限。它CHANGES他们。
现在是问题的核心——模式777意味着“任何人都可以读、写或执行这个文件”——你已经允许任何人(有效地)做他们想做的任何事情。
现在,为什么这很糟糕?
login程序,让它们每次都进入)。rm -r /,一切都结束了。操作系统被告知让他们为所欲为!sudo, sendmail, 和许多其他人根本不会再开始。他们将检查密钥文件的权限,看看它们不是它们应该的样子,然后返回一条错误消息。ssh会严重破坏(密钥文件必须具有特定权限,否则它们是“不安全的”,默认情况下 SSH 将拒绝使用它们。)777实际上是. 该前导数字中的内容包括和位。
大多数设置为 setuid/setgid 的程序都设置了该位,因为它们必须以特定权限运行。他们现在坏了。0777setuidsetgid/tmp,/var/tmp
在那个被归零的前导八进制数字中的另一件事是sticky bit——保护/tmp(和/var/tmp)中的文件不被不拥有它们的人删除。rm -r /tmp/*,如果没有设置粘性位,/tmp 您可以吻别该目录中的所有文件。/dev /proc类似的文件系统中造成了严重破坏/dev是一个真正的文件系统,它包含的东西是用mknod.更改设备权限可能会导致重大问题,从明显的安全风险(每个人都可以阅读每个 TTY)到不太明显的内核崩溃的潜在原因。Credit to @Tonny for pointing out this possibilityCredit to @Tonny for pointing out this possibility.在他们的PATH环境变量中都有(您不应该!) - 这可能会导致令人不快的惊喜,因为现在任何人都可以删除一个像命令一样方便地命名的文件(例如make或ls,和尝试让您运行他们的恶意代码。Credit to @RichHomolka for pointing out this possibilitychmod上将重置访问控制列表 (ACL)Credit to @JamesYoungman for pointing out this possibility系统中已经运行的部分会继续运行吗?可能,至少有一段时间。
但是下次您需要启动程序,或重新启动服务时,或者天堂禁止重新启动您所在的盒子时会受到伤害,因为上面的#2 和#3 会抬起它们丑陋的脑袋。
Zor*_*che 102
一件主要的事情是有许多工具,例如 ssh/sudo,可以检查关键配置文件的文件系统权限。如果权限错误,这些工具就会失败,因为这表明存在严重的安全问题。在我的 Debian 测试系统上,也许在其他系统上,登录能力失败,可能是因为登录二进制文件或 PAM 中的某些内容进行了权限检查。
因此,实际上并不是系统被破坏了——而是许多工具被设计为在权限错误时立即失效。
如果在执行完之后重新启动系统,chmod 777 -R /它会启动,并且您可以启动没有明确权限检查的进程。所以系统并不是真的死了,只是设计上有点不可用。
| 归档时间: |
|
| 查看次数: |
78548 次 |
| 最近记录: |