在非root用户下执行基于Libpcap库编写的应用程序时不能正常运行,原因是由于libpcap库使用raw socket的套接字。 而Raw Socket的使用需要root权限,否则raw socket会创建失败,因此基于raw socket编写的应用程序必须在root具有用户权限才能使用。 为了让基于Raw Socket应用程序在非Root用户下能够执行,在你编译完基于Raw Socket的应用程序之后,执行下面3步:
1. 进入root用户权限,若已经在root用户权限下忽略这一步
$ su root # 输入root密码
2. 以root用户权限修改应用程序的所有者(group)属性为root。
# sodu chown root:root
3. 以root用户添加应用程序的stick位,使得非root用户也能以root用户权限运行。
# sodu chmod u+s