ifconfig 的权限

ifconfig 的权限

为了ifconfig在 Linux 中执行此操作并更改 IP 和 VIP,是否需要 root 权限?
或者也可以通过非 root 帐户执行此操作?

答案1

您不需要 root 权限即可ifconfig更改 IP 地址,只需CAP_NET_ADMIN。让我们创建一个启用的副本ifconfigCAP_NET_ADMIN查看这一点:

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

答案2

是的,您必须是 root 才能使用 ifconfig,因为它通常位于/usr/sbin/sbin目录中。由于是非 root,ifconfig 二进制文件甚至不在您的 PATH 环境变量中。因此,您应该是 root,或者必须设置 sudo。但现代方法是使用数据包ip中的实用程序iproute2。您可以在非特权用户下使用它来查看有关链接、接口和路由的信息。但是,您必须是 root 才能更改设置。

答案3

这很容易测试:

% ifconfig lo 1.2.3.4
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied

是的,它需要 root。

相关内容