Мне нужно, чтобы пользователь мог изменять IP-адрес, не давая ему полный доступ суперпользователя. Как я могу это сделать?
Я попробовал решение здесь https://serverfault.com/a/480823 Это работает нормально, но только один раз, затем мне придется повторить эти шаги еще раз.
Как я могу предоставить пользователю разрешение на изменение IP-адреса, когда он захочет?
Изменить: Я не rm
файл, как указано в приведенной выше ссылке. Но при повторной попытке я получаю такие ошибки, как
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFNETMASK: Permission denied
SIOCSIFBROADCAST: Permission denied
, как если бы я использовал напрямую ifconfig
.
Простой способ изменить IP-адрес в командной строке сifconfig
# ifconfig <interface> <ipaddress> netmask <netmask>
sudo /sbin/ifconfig 192.168.0.1 netmask 255.255.255.0
# for changing gateway if desired
sudo /sbin/route add default gw 192.168.0.253 eth0
вы редактируете файл sudoers, используяvisudo
Вариант 1:создать новую группу, например ipchangers . Затем визуально добавьте внизу файла
%ipchangers ALL = NOPASSWD: /sbin/ifconfig
%ipchangers ALL = NOPASSWD: /sbin/route {if desired}
обязательно проинструктируйте своих ipchangers пользователей, что они должны ввести sudo /sbin/ifconfig
. И вы добавляете всех пользователей в группу ipchangers , которую вы хотите иметь возможность запускать ifconfig
Вариант 2:сделай это только для конкретного пользователя (s)joe и jack например, ты делаешь это без %
john ALL=NOPASSWD: /sbin/ifconfig
jack ALL=NOPASSWD: /sbin/ifconfig
при выходе visudo
он должен выйти чисто. Если нет, и это дает что-то вроде
>>> /etc/sudoers: syntax error near line 57 <<<
What now?
то ваш синтаксис неверен. следуйте последующим инструкциям и исправьте синтаксис, не сохраняйте плохой файл sudoers.
Имейте в виду, что тот, кому вы предоставляете возможность запуска ifconfig
, может использовать ifconfig
в полной мере и может делать больше, чем просто менять IP-адрес.