当前位置: 技术问答>linux和unix
写过 linux 下 ping 命令的进来
来源: 互联网 发布时间:2016-09-24
本文导语: 我是用 socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); 来创建icmp套接字,可是在linux下创建原始套接字需要root权限,所以要使用root用户执行。 但是,我还发现使用系统自带的ping命令则不需要root权限即可执行,有没有谁知道系统自...
我是用 socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); 来创建icmp套接字,可是在linux下创建原始套接字需要root权限,所以要使用root用户执行。
但是,我还发现使用系统自带的ping命令则不需要root权限即可执行,有没有谁知道系统自带的ping命令怎么实现的?
但是,我还发现使用系统自带的ping命令则不需要root权限即可执行,有没有谁知道系统自带的ping命令怎么实现的?
|
socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)
这个绝对需要root权限的 给你上一个 黑客之道:漏洞发掘的艺术(原书第二版)里的截图 昨晚才跟别人说过这个问题
至于为什么ping能普通用户执行1 2楼已经讲了 就跟sudo命令样
你也可以用root给你的程序作如下修改
chown root myping
chmod u+s,a+x myping
然后普通用户就可以用了
这个绝对需要root权限的 给你上一个 黑客之道:漏洞发掘的艺术(原书第二版)里的截图 昨晚才跟别人说过这个问题
至于为什么ping能普通用户执行1 2楼已经讲了 就跟sudo命令样
你也可以用root给你的程序作如下修改
chown root myping
chmod u+s,a+x myping
然后普通用户就可以用了
|
系统的ping命令是带粘住位的,它的用户ID是root。所以,当普通用户运行ping命令时,先将自己进程的用户ID变成root用户,然后在执行socket等函数。这样就有权限了。
|
-rwsr-xr-x 1 root root 34920 2010-07-08 20:04 /bin/ping*