cap_setfcap 功能是否可用于向 exe 文件授予完整功能?

cap_setfcap 功能是否可用于向 exe 文件授予完整功能?

我有一个具有 cap_setfcap 功能的文件(我们称之为 prog)。我可以使用它来授予 prog(文件本身)完整的功能吗?我知道不推荐,我只是想知道是否可以做到。

编辑:澄清一下:我想授予 prog 系统拥有的所有功能(所有集)。我知道该文件可以授予自己完整的“文件功能”,问题是他也可以授予自己完整的“运行时功能”吗?

感谢您的帮助!

答案1

是的。

如果您编写的程序想要向任何内容授予文件功能,但又不包含执行健全性检查或某种形式的身份验证的代码,则可以。 (程序员可以编写代码来完成各种事情。)

其实/sbin/setcap是这样一个程序:

$ cp /sbin/setcap ./easycap
$ chmod go-rwx ./easycap
$ sudo ./easycap cap_setfcap=p ./easycap
$ ./easycap =ep ./easycap
$ /sbin/getcap ./easycap
easycap =ep

setuid-root与也可以执行相同操作的程序不同,这里chmod go-rwx ./easycap限制只有用户才能访问这个强大的二进制文件whoami

为了授予该程序该cap_setfcap功能,该程序必须从某个地方获取该功能。在这种情况下,sudo用户授予此二进制文件权限,以向其可以写入的任何二进制文件提供任何文件功能。

也就是说,sudo调用者认为整个安排是个好主意。通过这种方式,或者在单个用户系统上,这对于了解所有可能被滥用的方式的管理员来说可能非常方便。在其他更有可能的情况下,这可能不是一个好主意。

相关内容