socket()普通用户, Operation not permitted
2015-04-23 17:31
525 查看
我想做一个ping程序,其中socket的前两个参数是AP_INET,SOCK_RAW
第三个参数应该是什么啊。一个例子中写的是IPPROTO_ICMP,这是什么东西啊,对吗?
int get_raw_socket()
{
int sd;
int flag;
if((sd=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)<0))
{
perror("get_raw_socket");
return -1;
}
flag=fcntl(sd,F_GETFL,0);
fcntl(sd,F_SETFL,flag|O_NONBLOCK);
return sd;
}
您看有问题吗?
但是执行的时候说:get_raw_socket: Operation not permitted
什么原因啊?
socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)
如果你要用 SOCK_RAW,就必须有 root 权限。
如果你要在普通用户权限下运行,需要 以 root 身份执行:
chmod 4755 program ,给 程序增加一个 s 属性.
第三个参数应该是什么啊。一个例子中写的是IPPROTO_ICMP,这是什么东西啊,对吗?
int get_raw_socket()
{
int sd;
int flag;
if((sd=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)<0))
{
perror("get_raw_socket");
return -1;
}
flag=fcntl(sd,F_GETFL,0);
fcntl(sd,F_SETFL,flag|O_NONBLOCK);
return sd;
}
您看有问题吗?
但是执行的时候说:get_raw_socket: Operation not permitted
什么原因啊?
socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)
如果你要用 SOCK_RAW,就必须有 root 权限。
如果你要在普通用户权限下运行,需要 以 root 身份执行:
chmod 4755 program ,给 程序增加一个 s 属性.
相关文章推荐
- 普通用户的ulimit -n xxxxx cannot modify limit: Operation not permitted的问题
- 普通用户的ulimit -n xxxxx cannot modify limit: Operation not permitted的问题
- oracle用户登录报错-bash: ulimit: open files: cannot modify limit: Operation not permitted
- ping: icmp open socket: Operation not permitted 的解决办法
- [Android Pro] root用户删除文件提示:Operation not permitted
- root用户删除文件提示:Operation not permitted
- Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
- 解决Linux 下 root用户删除文件提示:Operation not permitted
- root用户操作文件:Operation not permitted
- linux下root用户删除文件提示:Operation not permitted
- ping: icmp open socket: Operation not permitted的解决办法
- 解决Linux 下 root用户删除文件提示:Operation not permitted
- root用户操作文件:Operation not permitted
- ping: icmp open socket: Operation not permitted 的解决办法
- 启动MongoDB时出现Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
- cygwin ping: socket: Operation not permitted
- ping: icmp open socket: Operation not permitted 的解决办法
- [mongoDB]Failed to unlink socket file /tmp/mongodb-[portnum].sock Operation not permitted
- 解决:Ubuntu12.04下使用ping命令返回ping:icmp open socket: Operation not permitted的解决
- 解决:Ubuntu12.04下使用ping命令返回ping:icmp open socket: Operation not permitted的解决