Bonjour,
Je voudrais changer d'utilisateur pendant l'exécution d'un script shell. Mon script commence par faire des choses nécessitant d'être root mais ensuite je préfère être l'utilisateur toto et je ne trouve pas.
Si je fais un sudo à chaque ligne c'est vite moche et question lisibilité c'est moins bon. En plus il suffit d'oublier une seule fois et l'objectif est raté.
Pas la peine de me dire man sudo et man su car j'ai déjà fait :) Si la réponse est dans ces manuels, merci de me dire où car je n'ai pas vu.
Sur google je ne trouve pas non plus alors que j'ai l'impression que c'est un truc basique.
# su
Posté par peck (site web personnel) . Évalué à 2.
su utilisateur << EOF
echo Je suis ...
id
EOF
Attention par contre car le contenu sera interpreté avant le passage à su (comme s'il était entre "")
# seteuid
Posté par Kerro . Évalué à 2.
Si c'est ça, je ne sais pas :-)
Et la réponse m'interesse également.
J'ai autrefois pensé à un 'wrapper' en C mais ce n'est pas possible car le wrapper serait appelé au milieu du script shell, donc en tant que processus fils. Cela n'aurait donc pas d'incidence sur le processus parent.
On peux peut-être appeler une fonction du noyau directement à partir du shell ? Ou appeler une bibliothèque ? Je ne me suis jamais penché sur la question mais c'est la seule solution que j'entrevois.
# su -c
Posté par gaaaaaAab . Évalué à 3.
yapuka (c) appeler toto.sh dans ton_script.sh :
su - toto -c chemin/vers/toto.sh
en tout cas, c'est comme ça qu'on fait chez nous :)
[^] # Re: su -c
Posté par seginus . Évalué à 3.
fonction_admin() {
bla bla bla
}
sudo admin
[^] # Re: su -c
Posté par gremous . Évalué à 2.
Le seteuid() dont parle Kerro serait bien mais je n'ai pas trouvé non plus.
Merci :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.