删除写许可权不会阻止root写入文件


31

我刚刚在我的Ubuntu计算机(ext3文件系统)上注意到,从文件中删除写许可权并不能阻止root对其进行写操作。

这是UNIX文件权限的一般规则吗?还是特定于Ubuntu?还是我的机器配置错误?

#触摸abc
#chmod ugo-w abc
#蟒蛇
Python 2.6.4(r264:75706,2009年12月7日,18:45:15) 
linux2上的[GCC 4.4.1]
键入“帮助”,“版权”,“信用”或“许可证”以获取更多信息。
>>> open('abc','w')。write('AAA \ n')
>>> 
#猫abc
AAA级

如果我从普通用户帐户执行操作,则写入文件失败(按预期)。

  1. 这是正常行为吗?

  2. 有没有一种方法可以防止root意外写入文件?(最好使用普通的文件系统机制,而不是AppArmor等)

请教我一些我绝对不了解的内容。

注意:我知道root可以完全控制系统,并且可以(例如)更改任何文件的权限。我的问题是,当前设置的权限是否对以root用户身份运行的代码强制执行。这个想法是root用户防止他/他自己意外写入文件。

注意:我也了解正常操作不应以root用户身份登录。我刚刚注意到这种行为,并正在询问您有关此行为的信息。

Answers:


46

1)这是正常行为。root始终具有对所有文件的rw访问权限。

2)您甚至可以通过使用以下命令保护文件免受root攻击(不是故意的操作,而是偶然的操作)

chattr +i filename.ext

那就是“更改属性添加不可变”。删除保护:

chattr -i filename.ext

看看man chattr更多信息


@brice:非常感谢。直接解决我的问题。不知道chattr。
laramichaels

我的系统似乎需要root用户访问权才能运行chattr。是否有用户模式设置此类属性的方法?
quack quixote 2010年

1
...尽管这是一个很好的答案,“ root即使他无法删除文件,也可以很好地保护文件”!
quack quixote 2010年

4
更准确地说(对于Linux而言),root具有CAP_DAC_OVERRIDE允许他忽略ACL和权限的功能。
grawity'2

1
仅供参考,在OS X上,等效项是sudo chflags <s|u>chg <file>使其分别对系统或用户sudo chflags no<s|u>chg <file>不可变,并分别取消对系统或用户的不可变标志。
GDP2 2016年

3
  1. 是的,这很正常。 根是上帝。

  2. 是的,有一些方法可以防止root覆盖文件。

    • chattr+iset,-iunsets)设置不可变位。需要root访问权,仅在ext2 / ext3(可能也是ext4)上工作,但实际上是可行的。
    • 不要以root用户身份运行应用程序。没有root特权,没有覆盖文件。使用sudo访问系统功能。
    • 卸载文件系统。没有挂载的fs,没有覆盖文件。[*]
    • 关闭电脑。没有电,没有覆盖文件。

这些方法在逻辑上从#1开始。如您所见,后两种方法通常没有用,就像通过断开网络来保护Windows不受病毒感染一样。这就是为什么root危险的原因。[+]

[*]当然,减少了“意外”直接写入块设备的可能性。是的,root可以做到。是的,您可以防止这种情况:断开设备连接。

[+]这也是BOfH神话的来历。他们还不是全部神话。


@〜quack:brice的方法比您列出的三个更实用。:)
laramichaels

@〜quack:我的问题很清楚,我理解以root用户身份运行命令的问题。
laramichaels

3

您还可以使用Linux内核“功能”来限制root用户的文件访问权限:http : //www.securityfocus.com/infocus/1400

也有可能使用SE-Linux或其他内核补丁使某些文件甚至根目录都不可变。


0

我认为,只要root是超级用户,并且他可以执行任何操作,就不能删除他的任何许可,即使您是root。防止自己进行某项操作(例如写入文件或打开应用程序)是根本的意愿。

因此,不可以,您只能停用根帐户,以防止滥用它。

问候

[自我说明:你们要谦虚...也许你们错了]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.