Привилегии для ifconfig
Для того, чтобы сделать ifconfig в Linux и смените IP и VIP, требуются ли права root?
Или это также возможно сделать через учетную запись без полномочий root?
3 ответа
Вам не нужен root-доступ для использования ifconfig изменить IP-адреса, только CAP_NET_ADMIN. Давайте создадим копию ifconfig с CAP_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
Да, вы должны быть пользователем root для использования ifconfig, так как он обычно находится в /usr/sbin или же /sbin каталог. Будучи некорневым, бинарный файл ifconfig даже не входит в переменную окружения PATH. Итак, вы должны быть пользователем root или sudo должно быть настроено. Но современный способ заключается в использовании ip утилита из iproute2 пакет. Вы можете использовать его под непривилегированным пользователем, чтобы увидеть информацию о ссылках, интерфейсах и маршрутизации. Однако для изменения настроек вы должны быть пользователем root.
Это тривиально для тестирования:
% ifconfig lo 1.2.3.4
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
Так что да, требуется рут.