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 sudo complet 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?
permissions
sudo
privileges
Programster
la source
la source
man sudoers
etsudo cat /etc/sudoers
.Réponses:
Sudo
et le/etc/sudoers
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:
Vous pouvez ensuite donner un privilège utilisateur spécifique à ces commandes comme ceci:
Cela peut être vu dans l'image ci - dessous :
Maintenant, si vous essayez
sudo apt-get update
ousudo 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 leNOPASSWD
bit où vous accordez à un utilisateur l'accès aux groupes de commandes.Si vous essayez d'exécuter autre chose en tant
sudo
qu'utilisateur, vous serez invité à entrer un mot de passe et échouerez.Les références
la source
apt-get
, ou même simplementapt-get upgrade
, leur donne un accès root complet ! De nombreux scripts de mise à niveau permettent à l'utilisateur interactif d'exécuter un shell, par exemple lorsqu'un fichier de configuration a changé. Pour être sûr, limitez-vousapt-get
à certaines commandes et forcez-le à ne pas être interactif. Voir Est-il sûr que mon utilisateur ssh reçoive un sudo sans mot de passe pourapt-get update
etapt-get upgrade
?%sudo ...