Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de su avec environnement

4 réponses
Avatar
Kevin Denis
Bonjour,

(Système linux)

J'utilise su mais je ne comprends pas pourquoi la commande suivante
ne fonctionne pas:
root@zipslack:~# su - test24 -c echo $LANG

root@zipslack:~# su - test24
test24@zipslack:~$ echo $LANG
fr_FR

pourquoi dans le premier cas la variable d'environnement n'est pas
correctement renseignée?

Merci
--
Kevin

4 réponses

Avatar
Lucas Levrel
Le 15 octobre 2009, Kevin Denis a écrit :

J'utilise su mais je ne comprends pas pourquoi la commande suivante
ne fonctionne pas:
:~# su - test24 -c echo $LANG

:~# su - test24
:~$ echo $LANG
fr_FR

pourquoi dans le premier cas la variable d'environnement n'est pas
correctement renseignée?



Que donne echo $LANG quand tu es root ?
Que donne su - test24 -c 'echo $LANG' ?

--
LL
Avatar
Benoit Izac
Bonjour,

le 15/10/2009 à 10:26, Kevin Denis a écrit dans le message
:

J'utilise su mais je ne comprends pas pourquoi la commande suivante
ne fonctionne pas:
:~# su - test24 -c echo $LANG



Car le seul argument de l'option -c est echo.
Si tu fais :
# su - test24 -c echo $LANG
$LANG sera interprété par le shell en cours avant d'exécuter su.


Note que bien que cela fonctionne, selon su(1) (sur un linux) :
When - is used, it must be specified as the last su option. The
other forms (-l and --login) do not have this restriction.

# su test24 -c echo $LANG -
ou
# su test24 -c 'echo $LANG' -

--
Benoit Izac
Avatar
Kevin Denis
Le 15-10-2009, Benoit Izac a écrit :
J'utilise su mais je ne comprends pas pourquoi la commande suivante
ne fonctionne pas:
:~# su - test24 -c echo $LANG



Car le seul argument de l'option -c est echo.
Si tu fais :
# su - test24 -c echo $LANG
$LANG sera interprété par le shell en cours avant d'exécuter su.



Bon, pas mieux, soit avec -c echo $LANG ou -c 'echo $LANG'

When - is used, it must be specified as the last su option.



Je n'avais pas cette précision dans mon man.

# su test24 -c 'echo $LANG' -



Comme ca, c'est impeccable. Merci
--
Kevin
Avatar
Benoit Izac
Bonjour,

le 16/10/2009 à 13:53, Kevin Denis a écrit dans le message
:

J'utilise su mais je ne comprends pas pourquoi la commande suivante
ne fonctionne pas:
:~# su - test24 -c echo $LANG



Car le seul argument de l'option -c est echo.
Si tu fais :
# su - test24 -c echo $LANG
$LANG sera interprété par le shell en cours avant d'exécuter su.



Bon, pas mieux, soit avec -c echo $LANG ou -c 'echo $LANG'



Ce que je voulais dire c'est que si tu fais (en étant root)
# su test24 -c echo $HOME -
tu devrais obtenir /root

--
Benoit Izac