Je ne vois pas comment autoriser un utilisateur (dans ce cas, test
) à exécuter uniquement la commande apt-get update
avec le fichier sudoers
. Chaque fois que j'essaye d'ajouter l'utilisateur puis de le tester, il ne permet toujours pas à l'utilisateur d'exécuter la commande.
Quelqu'un peut-il m'aider s'il vous plaît? J'ai fait des recherches à ce sujet toute la journée et je ne peux toujours pas le comprendre. Je suis probablement en train de taper quelque chose qui ne va pas.
J'utilise Ubuntu 14.04.
En regardant la réponse de Andre Herman Bezerra, le seul problème avec cela est signalé dans les commentaires ceci NE (()) n'impose pas à l'utilisateur de se mettre à jour uniquement (ils peuvent installer/supprimer des paquets).
Si vous souhaitez empêcher un utilisateur de pouvoir uniquement mettre à jour , il est préférable de procéder comme suit.
Créez un groupe ou utilisez le groupe %staff
.
Dans cet exemple, je choisis d'utiliser le groupe d'utilisateurs du personnel.
Mettez à jour le document sudoers
.
export editor="vi" && Sudo visudo
Créez un Cmnd_Alias
qui définira un script bash autorisé.
Cmnd_Alias UPDATER_ONLY = /usr/local/bin/updater.sh
Vous devez définir comment cette commande est autorisée.
# Require staff to enter password when updating.
%staff ALL= UPDATER_ONLY
# Or, password is not required, just run the updater.
%staff ALL= NOPASSWD: UPDATER_ONLY
Enfin, vous devez créer le shell.
Pour empêcher toute personne modifiant le fichier, celle-ci doit appartenir à root et à une lecture seule , ou être créée en cours d’exécution Sudo .
$ Sudo echo '#!/bin/bash' >> /usr/local/bin/updater.sh
$ Sudo echo 'Sudo apt-get update && Sudo apt-get upgrade -y' >> /usr/local/bin/updater.sh
$ Sudo chmod 0755 /usr/local/bin/updater.sh
Cela devrait ressembler à ceci:
$ ls -la /usr/local/bin/updater.sh
-rwxr-xr-x 1 root root 60 Jan 22 08:50 /usr/local/bin/updater.sh*
Nous avons presque terminé!
N'oubliez pas d'autoriser ce privilège en ajoutant l'utilisateur au groupe d'employés.
Sudo usermod -aG staff the-user
Si quelqu'un tente d'installer quelque chose, voici ce qu'il recevra:
test-me@comp0:~$ Sudo apt-get install test
[Sudo] password for test-me:
Sorry, user test-me is not allowed to execute '/usr/bin/apt-get install test' as root on comp0.
Commencez par éditer le /etc/sudoers
uniquement avec visudo
name__
Vous pouvez définir l'autorisation sur l'utilisateur joe
pour la commande apt-get
en ajoutant uniquement la ligne suivante:
%joe your_hostname=(root):/usr/bin/apt-get
Une fois connecté en tant que joe
name__, vous pouvez vérifier les autorisations:
Sudo -l
Edit: l'utilisateur pourra utiliser apt-get update, upgrade, install, etc. puisque ce ne sont que des drapeaux pour la commande apt-get.