Привилегии для 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
Так что да, требуется рут.