"/etc/init.d/networking restart" с пользователем без полномочий root
У меня тонкий клиент с 112 МБ ОЗУ, который загружает Ubuntu Server 12.04.1 с USB-накопителя с openbox, и он должен использоваться студентами для связи с оборудованием Cisco. И из-за этого студенты должны быть в состоянии перенастроить сетевой интерфейс и затем перезапустить его без перезагрузки, используя единственного пользователя - Cisco.
Это то, что я до сих пор:
adduser cisco
usermod -a -G dialout cisco
chown root:cisco /etc/network/interfaces
chmod 664 /etc/network/interfaces
chmod u+s /sbin/shutdown
chmod u+s /sbin/reboot
chmod u+s /sbin/poweroff
chmod u+s /run/network/if*
chmod u+s /sbin/ifdown
chmod u+s /sbin/ifup
И когда я бегу /etc/init.d/networking restart
как cisco я получаю:
*Reconfiguring network interfaces...
rm: cannot remove `eth0.dhclient': Permission denied
Failed to send flush request: Operation not permitted
RTNETLINK answers: Operation not permitted
Любые идеи о том, как заставить это работать?
Спасибо!
1 ответ
Вам необходимо добавить надлежащие права sudo для пользователя cisco. Создайте один файл в /etc/sudoers.d/ от имени root с именем cisco и со следующим содержимым в одну строку:
cisco ALL=NOPASSWD: /etc/init.d/networking
Также измените права доступа только для чтения:
sudo chmod 440 /etc/sudoers.d/cisco
Более Ubuntu способ будет использовать sudo service networking restart
логика, но я не знаю, как добавить это в файл sudoers.