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?
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-dessous:
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.