Привилегии для 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

Так что да, требуется рут.

Другие вопросы по тегам