linux文件给root,linux – 文件权限如何为“root”用户工作?

我有以下文件:

---------- 1 Steve Steve 341 2017-12-21 01:51 myFile.txt

我将用户切换到终端root,我注意到以下行为:

>我可以读取此文件并写入.

>我无法执行此文件.

>如果我在用户权限(— x ——)或组权限(—— x —)或其他权限(——中设置x位) — x)文件,然后我就可以执行这个文件了.

任何人都可以向我解释或指向一个教程,解释当root用户处理文件和目录时适用的所有规则吗?

解决方法:

对文件和目录的特权访问实际上是由功能决定的,而不仅仅是root用户.在实践中,root通常具有所有可能的功能,但是在某些情况下,可以删除所有/许多功能,或者将某些功能(其进程)提供给其他用户.

简而言之,您已经描述了访问控制检查如何为特权进程工作.以下是不同功能实际影响它的方式:

主capability here is CAP_DAC_OVERRIDE,一个具有它的进程可以“绕过文件读取,写入和执行权限检查”.这包括读取和写入任何文件,以及读取,写入和访问目录.

它实际上不适用于执行未标记为可执行文件的文件.在访问检查文件之前,comment in generic_permission(fs / namei.c)说明了这一点

Read/write DACs are always overridable. Executable DACs are overridable when there is at least one exec bit set.

如果您尝试执行该文件,代码会检查是否至少设置了一个x位.我怀疑这只是一个方便的功能,以防止意外运行随机数据文件,并获得错误或奇怪的结果.

无论如何,如果你可以覆盖权限,你可以制作一个可执行副本并运行它. (虽然它可能会对进程的setuid文件的理论产生影响,但能够覆盖文件权限(CAP_DAC_OVERRIDE),但没有其他相关功能(CAP_FSETID / CAP_FOWNER / CAP_SETUID).但是有CAP_DAC_OVERRIDE允许编辑/ etc / shadow这样的东西,所以它大约相当于只有完全root访问权限.)

还有CAP_DAC_READ_SEARCH功能,允许读取任何文件并访问任何目录,但不执行或写入它们;和CAP_FOWNER允许进程执行通常仅为文件所有者保留的内容,例如更改权限位和文件组.

仅在CAP_FOWNER下提及覆盖目录上的粘滞位,因此似乎CAP_DAC_OVERRIDE不足以忽略它. (它会给你写权限,但通常在粘性目录中你有这个,并且限制它.)

(我认为特殊设备在这里算作“文件”.至少generic_permission()只对目录进行类型检查,但我没有在那之外检查.)

当然,有些情况甚至功能都无法帮助您修改文件:

> / proc和/ sys中的一些文件,因为它们不是真正的实际文件

> SELinux和其他可能限制root的安全模块

> chattr不可变i并且只在ext2 / ext3 / ext4上附加一个标志,这两个标志都停止了root,并防止文件重命名等.

>网络文件系统,服务器可以在其中进行自己的访问控制,例如NFS中的root_squash将root映射到nobody

> FUSE,我认为可以做任何事情

>只读安装

>只读设备

标签:linux,permissions,root

来源: https://codeday.me/bug/20190808/1624178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值