[RESOLU] - variable environnement et su

- variable environnement et su [RESOLU] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 20-10-2009 à 17:55:25    

Bonjour,   :hello:  
 
Je me permet de venir faire une petit tour sur cet excellent forum qui m'a déja dépanné plus d'une fois !  :jap:  
Je m'explique : Comment faire, lorsque l'on lance une commande avec su  (ex : su - USER -c "macommande" ), pouvoir utiliser les variable d'environnement de l'utilisateur USER ? exemple :  
 
[root@rexfrapsyp001 ~]# su - oracle
[oracle@rexfrapsyp001 ~]$ echo $HOME
/home/oracle
[oracle@rexfrapsyp001 ~]$
 
jusque là c'est  OK :D  
[oracle@rexfrapsyp001 ~]$ exit
logout
[root@rexfrapsyp001 ~]# su - oracle -c "echo $HOME"
/root
[root@rexfrapsyp001 ~]#
 
Là c'est moins bien   :sarcastic:  
Quelqu'un a une idée ?  
Merci d'avance ..


Message édité par Drix75 le 21-10-2009 à 13:02:06
Reply

Marsh Posté le 20-10-2009 à 17:55:25   

Reply

Marsh Posté le 21-10-2009 à 09:52:20    

su oracle -c "echo $HOME"
 
Le "-" sert justement à réinitialiser l'environnement ... (rtfm)

Reply

Marsh Posté le 21-10-2009 à 10:34:36    

Merci de ta réponse, mais ça ne fonctionne pas mieux.
 
[root@rexfrapsyp001 shell]# su  - oracle -c "echo $HOME"
/root
[root@rexfrapsyp001 shell]# su   oracle -c "echo $HOME"
/root
[root@rexfrapsyp001 shell]#
 
 
Et Le man ,je l'ai lu ...  :sarcastic:  
 
En fait j'ai besoin de lancer un traitement shell avec le user root, qui ensuite va lancer une  commande avec l'utilisateur oracle ... et j'ai besoin d'utiliser les variables d'environnements de l'utilisateur oracle dans ce shell.

Reply

Marsh Posté le 21-10-2009 à 11:35:11    

le $HOME il est évalué dans le contexte appelant.
Ce que tu exécutes en fait, c'est su  - oracle -c "echo /root"

Reply

Marsh Posté le 21-10-2009 à 11:46:03    

OK... effectivment c'est pas top ... Et alors comment je peux faire pour utiliser les variables d'environnements du user oracle ? elles sont définies dans le .bash_profile ..


Message édité par Drix75 le 21-10-2009 à 11:46:32
Reply

Marsh Posté le 21-10-2009 à 12:41:45    

tu fais un script. -c /path/to/script.

Reply

Marsh Posté le 21-10-2009 à 13:01:22    

Yep : ça ca marche (testé à l'instant).
Merci :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed