web-dev-qa-db-fra.com

Est-il possible de donner à Sudo l'accès à une seule commande?

Background: J'ai une machine de développement avec configuration LAMP. Plusieurs développeurs accèdent de temps en temps à la machine. Chaque fois qu'ils modifient un fichier de configuration, ils devront redémarrer le serveur Apache à l'aide de Sudo service Apache restart ou de Sudo /etc/init.d/Apache2 restart.

La question:

Ce que je veux maintenant, c’est que chaque développeur qui accède à la machine ne dispose pas d’un accès Sudo à tout. Au lieu de cela, il/elle ne devrait pouvoir exécuter que la commande service en utilisant Sudo et rien d’autre. Est-il possible de faire ça?

24
Ankit

Oui.

Créez un nouveau groupe, sur le Web (appelez-le comme vous le souhaitez)

Sudo addgroup web

Ajoutez vos développeurs au groupe Web (utilisez leur nom de connexion).

Sudo adduser your_developer_user web

Ensuite, exécutez Sudo visudo -f /etc/sudoers.d/somefile (utilisez un nom explicite à la place de somefile).

Ajoutez une ligne (utilisez le chemin complet de la commande):

%web ALL=(ALL) /usr/bin/service Apache2 *

Les développeurs peuvent alors exécuter

Sudo service Apache

en utilisant leur mot de passe de connexion.

N'ajoutez PAS votre utilisateur admin au groupe Web.

Voir man sudoers pour plus d'informations

35
Panther