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 /rootuniquement)
exécuter la permission pour le fichier
autorisation de lecture pour le fichier
Il peut être judicieux de laisser /rootintact et de créer (ou d'utiliser) un répertoire différent à cet effet (par exemple /usr/local/bin). Vous pouvez définir user1le seul utilisateur autorisé à exécuter le script en en faisant le propriétaire du fichier ou le laisser en roottant que propriétaire et groupe, définir les autorisations d'accès simples ( chmod) 770et ajouter user1avec 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/sudoersentré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 sudocommande.
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.
sudocommande que vous avez écrite?