为了在Linux中执行ifconfig并更改IP和VIP,是否需要root权限?
或者也可以通过非root帐户来完成此操作?
您不需要root访问权限就可以使用ifconfig来更改IP地址,只需要CAP_NET_ADMIN 。 让我们创build一个启用了CAP_NET_ADMIN的ifconfig的副本来查看:
cp /sbin/ifconfig . sudo setcap cap_net_admin=eip ./ifconfig ./ifconfig eth0 1.2.3.4 # succeeds # Wouldn't want to leave this copy of ifconfig around, # It's a security hole! rm ifconfig
是的,您必须是使用ifconfig的root用户,因为它通常位于/usr/sbin或/sbin目录中。 作为非root用户,ifconfig二进制文件甚至不在PATH环境variables中。 所以,你应该是root,或者sudo必须被设置。 但现代的方法是使用iproute2数据包的ip工具。 您可以在非特权用户下使用它来查看有关链接,接口和路由的信息。 但是,您必须以root身份更改设置。
这是微不足道的testing:
% ifconfig lo 1.2.3.4 SIOCSIFADDR: Permission denied SIOCSIFFLAGS: Permission denied
所以是的,它需要根。