web-dev-qa-db-fra.com

Autoriser certains invités à exécuter certaines commandes

Je voudrais créer un nouvel utilisateur sur certains de mes hôtes Debian/Ubuntu qui est capable de mettre à jour le serveur en utilisant les commandes apt-get update et apt-get dist-upgrade, mais je ne veux pas leur donner un accès complet à Sudo pour pouvoir faire autre chose. Est-ce possible? Peut-être existe-t-il un moyen de créer un script qu'ils ne peuvent pas modifier mais peuvent exécuter, qui sera exécuté en tant qu'utilisateur root?

20
Programster

Sudo et le /etc/sudoers Le fichier ne sert pas uniquement à accorder aux utilisateurs un accès root complet.

Vous pouvez éditer le fichier sudoers avec un utilisateur Sudo existant, avec la commande Sudo visudo

Vous pouvez regrouper les commandes auxquelles vous souhaitez accorder l'accès comme ci-dessous:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

Vous pouvez ensuite donner un privilège utilisateur spécifique à ces commandes comme ceci:

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

Cela peut être vu dans l'image ci-dessousenter image description here:

Maintenant, si vous essayez Sudo apt-get update ou Sudo apt-get dist-upgrade ces commandes s'exécuteront sans demander de mot de passe . Si vous souhaitez être invité à entrer un mot de passe, supprimez le bit NOPASSWD où vous accordez à un utilisateur l'accès aux groupes de commandes.

Si vous essayez d'exécuter autre chose en tant qu'utilisateur Sudo, vous serez invité à entrer un mot de passe et échouerez.

Références

33
Programster