相关疑难解决方法(0)

具有 setuid 位的 root 拥有的程序

Ping 是一个由 root 拥有的程序,用户 id 位被设置。

$ ls -l `which ping`
-rwsr-xr-x 1 root root 35752 Nov  4  2011 /bin/ping
Run Code Online (Sandbox Code Playgroud)

据我了解,如果用户运行 ping 进程,那么有效用户 ID 将从真实用户 ID(即启动该进程的人的用户 ID)更改为用户 ID root。但是,当我尝试这样做并查看 ps 的输出以查看 ping 进程是否以 root 用户身份运行时,我仍然显示真实的用户 ID。

ps -e -o user,ruser,euser,cmd,args | grep ping
sashan   sashan   sashan   ping -i 10 -c 1000 www.goog ping -i 10 -c 1000 www.google.com
Run Code Online (Sandbox Code Playgroud)

security process setuid ping privileges

15
推荐指数
1
解决办法
4306
查看次数

在没有 setuid 和功能的情况下,ping 在 Fedora 上如何工作?

据我所知,ping需要创建一个原始套接字(需要 root 访问权限或cap_net_raw功能)。

根据我的理解,最近几年的趋势是删除setuid二进制文件并用功能替换它们。

但是,当我查看pingFedora 32上的二进制文件时,它看起来没有任何内容:

$ ls -la $(which ping)
-rwxr-xr-x. 1 root root 82960 May 18 10:26 /usr/bin/ping
$ sudo getcap -v $(which ping)
/usr/bin/ping
$   
Run Code Online (Sandbox Code Playgroud)

ping 是否需要在 Fedora 上打开原始套接字?还是有另一种方法可以授予它打开原始套接字的权限?

security setuid capabilities

12
推荐指数
2
解决办法
1618
查看次数

标签 统计

security ×2

setuid ×2

capabilities ×1

ping ×1

privileges ×1

process ×1