[Linux] Changer d'utilisateur pdt l'éxécution
Tibo
-
Z3uS-Su3Z Messages postés 96 Statut Membre -
Z3uS-Su3Z Messages postés 96 Statut Membre -
Salut à tous,
Voilà mon problème est simple à comprendre et j'espère aussi simple à résoudre :)
En fait je suis entrain de faire un programme c++ sous linux, pour automatiser l'installation des serveurs Apache, php et MySQL.
Mon programme doit être lancé en "root" pour pouvoir tout copier, compiler et installer dans /usr/local/.
Mais au cours de l'éxécution, quand j'attaque la configuration de MySQL, je voudrais que mon programme passe en utilisateur "mysql", comme si c'étais lui qui avait lancé le programme.
J'ai tenté un : system("su mysql"); qui marche bien mais qui me ferme le programme en cours...
Je voudrais un équivalent mais qui laisse le programme s'éxécuter, qui se contente juste d'en changer l'utilisateur.
Voilà, si quelqu'un a une idée, une piste ou quelque chose ca pourrait me sortir d'une petite galère...
Merci d'avance ;)
Voilà mon problème est simple à comprendre et j'espère aussi simple à résoudre :)
En fait je suis entrain de faire un programme c++ sous linux, pour automatiser l'installation des serveurs Apache, php et MySQL.
Mon programme doit être lancé en "root" pour pouvoir tout copier, compiler et installer dans /usr/local/.
Mais au cours de l'éxécution, quand j'attaque la configuration de MySQL, je voudrais que mon programme passe en utilisateur "mysql", comme si c'étais lui qui avait lancé le programme.
J'ai tenté un : system("su mysql"); qui marche bien mais qui me ferme le programme en cours...
Je voudrais un équivalent mais qui laisse le programme s'éxécuter, qui se contente juste d'en changer l'utilisateur.
Voilà, si quelqu'un a une idée, une piste ou quelque chose ca pourrait me sortir d'une petite galère...
Merci d'avance ;)
A voir également:
- [Linux] Changer d'utilisateur pdt l'éxécution
- Changer dns - Guide
- Changer nom utilisateur windows 10 - Guide
- Changer carte graphique - Guide
- Changer extension fichier - Guide
- Changer wifi chromecast - Guide
3 réponses
Essai avec popen : ça ne remplacera pas le processus en cours.
Ou bien fais un fork() dans ton programme avant de lancer le system().
Ou bien fais un fork() dans ton programme avant de lancer le system().