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

Probl

4 réponses
Avatar
Nicolas FRANCOIS
Salut.

J'ai un soucis avec les variables d'environnement et su. Je m'esplique :
j'ai découvert dernièrement que pour avoir accès aux ressources de /etc/
profile, il fallait, pour lancer su, l'invoquer par "su -". Bon, tout va
bien.

Mais le problème, c'est que quand je lance cette commande, premièrement
je me retrouve dans le répertoire /root, ce qui n'est en général pas ce
que je veux (su pour installer quelque chose), et que je n'ai plus accès
aux variables d'environnement créées par l'utilisateur normal. Ce dernier
point me pose un double problème :

1) de temps en temps, la compilation d'un paquet nécessite de créer des
variables, et quand on passe sous root, on n'y a du coup plus accès, ce
qui peut provoquer des erreurs au "make install", par exemple.

2) Si je dois tester un paquet, je n'ai pas accès à la variable DISPLAY,
alors qu'il y a :

export DISPLAY=localhost:0.0
xhost +

dans mon fichier /home/nico/.bash_profile.

Quelqu'un a une solution ? Fait suer, ces shells interactifs, de login,
pas de login... Enfin, rectifions : j'y comprends que'd...

Merci pour toute aide de pro.

\bye

--

***********************************************
Nicolas FRANCOIS
nicolas.francois@free.fr
http://nicolas.francois.free.fr

What is yellow, small and VERY VERY dangerous ?

A canari bird with a root password.
***********************************************

4 réponses

Avatar
Hugolino
Le 07 Jan 2008 15:39:20 GMT, Nicolas FRANCOIS a écrit:
Salut.

J'ai un soucis avec les variables d'environnement et su. Je m'esplique :
j'ai découvert dernièrement que pour avoir accès aux ressources de /etc/
profile, il fallait, pour lancer su, l'invoquer par "su -". Bon, tout va
bien.

Mais le problème, c'est que quand je lance cette commande, premièrement
je me retrouve dans le répertoire /root, ce qui n'est en général pas ce
que je veux (su pour installer quelque chose), et que je n'ai plus accès
aux variables d'environnement créées par l'utilisateur normal. Ce dernier
point me pose un double problème :


Je lance ça au hasard, j'ai pas vérifié, mais tu peux essayer un
'sudo -s' plutôt que 'su -'.

HTH

--
Le MLLL (mouvement lesbien pour le logiciel libre) vient de choisir Tuxette
comme emblème. "Vous voulez vraiment savoir pourquoi nous avons pris une
pingouine comme mascotte ?" a déclaré la leadeuse du mouvement.
Hugo (né il y a 1 378 948 853 secondes)

Avatar
speak.me
On 7 jan, 16:39, Nicolas FRANCOIS
wrote:
Salut.

J'ai un soucis avec les variables d'environnement et su. Je m'esplique :
j'ai découvert dernièrement que pour avoir accès aux ressources de / etc/
profile, il fallait, pour lancer su, l'invoquer par "su -". Bon, tout va
bien.

Mais le problème, c'est que quand je lance cette commande, premièremen t
je me retrouve dans le répertoire /root, ce qui n'est en général pas ce
que je veux (su pour installer quelque chose), et que je n'ai plus accès
aux variables d'environnement créées par l'utilisateur normal. Ce dern ier
point me pose un double problème :

1) de temps en temps, la compilation d'un paquet nécessite de créer de s
variables, et quand on passe sous root, on n'y a du coup plus accès, ce
qui peut provoquer des erreurs au "make install", par exemple.

2) Si je dois tester un paquet, je n'ai pas accès à la variable DISPLA Y,
alors qu'il y a :

export DISPLAY=localhost:0.0
xhost +

dans mon fichier /home/nico/.bash_profile.

Quelqu'un a une solution ? Fait suer, ces shells interactifs, de login,
pas de login... Enfin, rectifions : j'y comprends que'd...

Merci pour toute aide de pro.

bye


Je ne suis pas sur de ta demande mais si j'ai bien compris tu veux :
1- passer root
2- et conserver ton environnement d'origine (utilisateur)

=> "su" et pas "su -"

Ainsi ca fera ca :
Tu te connectes en tant que nico (c'est un login shell donc /etc/
profile est chargé)
Tu passe root avec "su" (et tu conserves ton environnement
utilisateur)

Alors que toi tu fais :
Tu te connecte en tant que nico (c'est un login shell donc /etc/
profile est chargé)
Tu passe root avec "su -" (et tu perds ton environnement utilisateur ;
l'environnement de root est chargé => changement de HOME_DIRECTORY,
des variables et tous ces effets de bords que tu ne souhaites pas)

Voila pour la parti su

Sinon, "sudo" ne te fera pas te poser toutes ces questions, mais tu ne
sauras jamais pourquoi ca ne marchait pas avec su...
Donc continue de tester avec su et maitrise la solution avant de
passer par sudo !

En esperant avoir compris ta Q et apporte une R
:)

See ya

Avatar
Nicolas FRANCOIS
Le Tue, 08 Jan 2008 04:08:46 -0800, speak.me a écrit :

Je ne suis pas sur de ta demande mais si j'ai bien compris tu veux : 1-
passer root
2- et conserver ton environnement d'origine (utilisateur)

=> "su" et pas "su -"

Ainsi ca fera ca :
Tu te connectes en tant que nico (c'est un login shell donc /etc/
profile est chargé)
Tu passe root avec "su" (et tu conserves ton environnement utilisateur)


nico [ ~ ]$ echo $PATH
/opt/kde-3.5.7/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/opt/gnome/
bin:/opt/jdk/bin:/opt/kde/bin
nico [ ~ ]$ su
Mot de passe :
root [ /home/nico ]# echo $PATH
/bin:/usr/bin
root [ /home/nico ]#

Cela a-t-il quelque chose à voir avec le fait que j'ai configuré shadow
avec Linux-PAM et cracklib (voir BLFS) ? Comment puis-je suivre "de visu"
le processus de chargement des fichiers lors d'un login ou d'un su ?

Alors que toi tu fais :
Tu te connecte en tant que nico (c'est un login shell donc /etc/ profile
est chargé)
Tu passe root avec "su -" (et tu perds ton environnement utilisateur ;
l'environnement de root est chargé => changement de HOME_DIRECTORY, des
variables et tous ces effets de bords que tu ne souhaites pas)


Voui, je m'en ai rendu compte :-)

Voila pour la parti su

Sinon, "sudo" ne te fera pas te poser toutes ces questions, mais tu ne
sauras jamais pourquoi ca ne marchait pas avec su... Donc continue de
tester avec su et maitrise la solution avant de passer par sudo !


Mais sudo ne permet de lancer les commandes qu'une par une. Si j'ai une
tripotée de commande à lancer pour installer un package, il faut que je
les fasse toutes précéder de "sudo"... pas super.

En esperant avoir compris ta Q et apporte une R :)


Tu as parfaitement compris ma Q, mais visiblement le comportement de mon
install ne correspond pas à ta R !

Merci quand même :-)

See ya


Hope so !

bye

--

***********************************************
Nicolas FRANCOIS

http://nicolas.francois.free.fr

What is yellow, small and VERY VERY dangerous ?

A canari bird with a root password.
***********************************************

Avatar
Hugolino
Le 08 Jan 2008 18:06:36 GMT, Nicolas FRANCOIS a écrit:

Mais sudo ne permet de lancer les commandes qu'une par une. Si j'ai une
tripotée de commande à lancer pour installer un package, il faut que je
les fasse toutes précéder de "sudo"... pas super.


C'est 'sudo -s' qui te donnera un shell, dans lequel tu pourras lancer
autant de commandes que tu veux. Pas 'sudo' sans option...


--
--
L'intelligence artificielle ne remplacera jamais la connerie humaine.
Hugo (né il y a 1 379 272 196 secondes)