让Raw Socket的应用程序在非root用户下执行

    在非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 <app-name>
    3. 以root用户添加应用程序的stick位,使得非root用户也能以root用户权限运行。
    # sodu chmod u+s <app-name>
   其中:
       <app-name>为你应用程序的名称。
   如果应用程序使用到其它动态库文件,那必须把这些动态库文件拷贝到/usr/lib目录中。
   最终的结果是使得你的应用程序与/bin/ping程序一样,具有相同的所有权和文件权限设置。

你可能感兴趣的:(socket)