[英][Linux Difference between SUID and cap_setuid of binary]
“我不明白 linux 中二进制的 SUID 和 cap_setuid 之间的区别。那么,SUID 和 setuid 之间的区别”
二进制文件的 SUID 意味着二进制文件在启动时被检测为不同的有效用户。 例如:
$ cp `which id` nobody_id
$ sudo chown nobody nobody_id
$ sudo chmod +s nobody_id
$ ./nobody_id
.... euid=65534(nobody) groups= ...
您可以做同样的事情,但制作二进制 setuid- root
以使二进制以root
的权限运行。
CAP_SETUID
是 Linux 允许进程从代码更改 UID 的功能:它可以授予代码执行setuid()
系统调用的权限。 这被认为是普通用户代码可以执行的特权。 可以使用不影响文件所有权的文件功能将其提供给程序:
$ sudo setcap cap_setuid=ep my_program_binary
下次运行./my_program_binary
时,它将在启用该功能的情况下运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.