Exécuter le script en tant qu'utilisateur différent de root [fermé]

11

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

bulkmoustache
la source
1
La question n'est pas complètement claire: "vous êtes root et souhaitez exécuter le script en tant qu'utilisateur1" ou "vous êtes user1 et vous voulez exécuter le script en tant que root"? Si le premier est le cas, quel est le problème avec la sudocommande que vous avez écrite?
michas
Départsu(1)
vonbrand

Réponses:

11

Je dois dire que je n'ai jamais aimé sudo(surtout ses configurations). Plain vieux su:

su -c 'command' - user

Exécutée à partir de la racine, elle ne demandera pas de mot de passe.

orion
la source
0

L'utilisateur doit avoir

  1. exécuter la permission pour le chemin du répertoire entier (ici /rootuniquement)

  2. exécuter la permission pour le fichier

  3. 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).

Hauke ​​Laging
la source
0

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.


la source