Depuis l'utilisateur root, comment puis-je donner des autorisations à un autre utilisateur pour exécuter le fichier /root/script.sh?
L'idée est d'exécuter le script comme sudo -u user1 /root/script.sh
su(1)
Depuis l'utilisateur root, comment puis-je donner des autorisations à un autre utilisateur pour exécuter le fichier /root/script.sh?
L'idée est d'exécuter le script comme sudo -u user1 /root/script.sh
su(1)
Réponses:
L'utilisateur doit avoir
exécuter la permission pour le chemin du répertoire entier (ici /root
uniquement)
exécuter la permission pour le fichier
autorisation de lecture pour le fichier
Il peut être judicieux de laisser /root
intact et de créer (ou d'utiliser) un répertoire différent à cet effet (par exemple /usr/local/bin
). Vous pouvez définir user1
le seul utilisateur autorisé à exécuter le script en en faisant le propriétaire du fichier ou le laisser en root
tant que propriétaire et groupe, définir les autorisations d'accès simples ( chmod
) 770
et ajouter user1
avec les ACL ( setfacl
).
Si votre script se trouve dans le répertoire racine, alors
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
ne peut être que root.
Votre /etc/sudoers
entrée ressemblera à
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
Normalement, vous éditez le fichier avec visudo
Ensuite , vous pouvez aussi ne pas besoin de mettre -u root
à votre sudo
commande.
Le %
signifie le groupe d'utilisateurs. Lorsque vous l'omettez, seul l'utilisateur est autorisé à exécuter la commande. Si vous voulez qu'un groupe d'utilisateurs l'exécute, laissez-le tel quel.
sudo
commande que vous avez écrite?