CentOS: 让普通用户控制网络接口

普通用户一般不需要去开关网络接口, 特殊情况下,需要普通用户拥有这一权力,例如ppp/vpn之类的,

例如我们需要用户能开启关闭一个网络接口eth1

需要编辑/etc/sysconfig/network-scripts/ifcfg-eth1

设置USERCTL为yes, 如下:

PROTO=static
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.137.137
NETMASK=255.255.255.0
TYPE=Ethernet
BOOTPROTO=none
USERCTL=yes
PREFIX=24
GATEWAY=192.168.137.1
DNS1=192.168.137.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=eth1
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04
LAST_CONNECT=1404040062

普通用户即可用 ifup eth1 / ifdown eth1 来开关网络接口

有时候设置了

ONBOOT=yes

但是还不能开机自动连接网络,可以在 /etc/rc.local 里加入 /sbin/ifup eth0


原理:

普通用户通过ifup/ifdown 操作网络接口时, 会调用 /usr/sbin/usernetctl, 这个程序是setuid的程序,

usernetctl 检查配置文件中USERCTL变量的值,如果为真,则允许普通用户进行up/down之类的简单操作.

如下:

if [ ${UID} != 0 ]; then

    if [ -x /usr/sbin/usernetctl ]; then

    source_config

    if /usr/sbin/usernetctl ${CONFIG} report ; then

        exec /usr/sbin/usernetctl ${CONFIG} up

    fi  

    fi  

    echo $"Users cannot control this device." >&2

    exit 1

fi

(参见: /etc/sysconfig/network-scripts/ifup )


转载自:http://hi.baidu.com/zypublic111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值