web-dev-qa-db-fra.com

"/etc/init.d/networking restart" avec un utilisateur non root

J'ai un client léger avec 112 Mo RAM qui démarre le serveur Ubuntu 12.04.1 à partir d'un lecteur USB avec openbox et il doit être utilisé par les étudiants pour communiquer avec l'équipement Cisco. Et à cause de cela, les étudiants devez être en mesure de reconfigurer l'interface réseau, puis de la redémarrer sans redémarrage en utilisant le seul utilisateur - Cisco.

Voici ce que j'ai jusqu'à présent:

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

Et quand je lance /etc/init.d/networking restart comme Cisco j'obtiens:

*Reconfiguring network interfaces...
rm: cannot remove `eth0.dhclient': Permission denied
Failed to send flush request: Operation not permitted
RTNETLINK answers: Operation not permitted

Des idées sur la façon de faire fonctionner cela?

Merci!

1
bonchen

Vous devez ajouter les droits Sudo appropriés à l'utilisateur Cisco. Créez un fichier dans /etc/sudoers.d/ en tant que root, nommé Cisco, et avec le contenu d'une ligne suivant:

Cisco ALL=NOPASSWD: /etc/init.d/networking

Modifiez également les droits d'accès en lecture seule:

Sudo chmod 440 /etc/sudoers.d/Cisco

De plus, la méthode Ubuntu serait d'utiliser le Sudo service networking restart logique, mais je ne sais pas comment l'ajouter au fichier sudoers.

1
Doka