"/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.

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