$PATH ne contient pas sbin

Demande d'aide : c'est ici.
Répondre
dindoun
Membre
Membre
Messages : 24
Inscription : 19 nov. 2018, 23:00
Localisation : rouen
Contact :
Status : Hors-ligne

salut
je viens d'installer une buster et en root je n'ai pas de /usr/sbin ou /usr/local/sbin
pourtant /etc/profile contient le classique

Code : Tout sélectionner

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else :
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
mes .xsession semblent contenir des définitions concurrentes de $PATH
une idée?
merci par avance
dindoun

PS désolé mais jen ep eux pas metrte les balises de code ( voir en dessous )
PPS je viens de venir sur debian.xyz ( depuis debian-fr.org ) à cause des fonts et appels externes et ici c'est pareil : ca me gonfle ; c'est bête mais quand je vais ici c'est pas pour être espionner ailleurs.
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour dindoun

Quand, depuis un compte utilisateur non privilégié,
tu veux passer sous le compte root
je suppose que tu utilises la commande su
mais que tu oublies d'ajouter l'option qui permet de se connecter à ce compte
tout en utilisant l'environnement de ce compte utilisateur : répertoire personnel et variables (dont la variable PATH)

L'option a ajouter à la commande su est l'option --login
qui peut être raccourcie par un seul tiret, donc :

Code : Tout sélectionner

su -


=======
Quand tu ouvres une fenêtre de terminal depuis l'environnement de bureau,
tu n'as pas besoin d'être identifié vu que tu l'as déjà fait pour te connecter à cet environnement de bureau.

Dans ce cas, le fichier /etc/profile et le fichier ~/.profiles ne sont pas pris en compte.

D'ailleurs, dans la première ligne du fichier ~/.profile est écrit :

Code : Tout sélectionner

# ~/.profile: executed by the command interpreter for login shells.
…
Et effectivement, le shell obtenu dans une fenêtre d'émulateur de terminal d'un environnement de bureau
n'est pas un "login shell" <=> il n'y a pas d'invite (du programme login) pour ouvrir une session shell.

Par contre, si tu ouvres une fenêtre de terminal en mode texte
(par exemple, depuis l'environnement de Bureau par Ctrl-Alt-F2)
tu auras une invite du programme login qui te demandera de donner
un nom de compte utilisateur, puis son mot de passe.
Alors là, oui, c'est bien un "login shell"
dindoun
Membre
Membre
Messages : 24
Inscription : 19 nov. 2018, 23:00
Localisation : rouen
Contact :
Status : Hors-ligne

salut
merci
mais sur un de mes ordis, j'utilise su root et j'obtiens un PATH avec /sbin que je n'ai pas avant d'être root.

Je pense qu'il faut que je révise mes ordres de lecture des fichiers de config au login.

j'ai pour l'instant résolu le problème en passant le $PATH sur /root/.bashrc , qui lui est lu.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

c'est une évolution relativement récente (quelques mois en testing).
Est ce que toutes tes machines sont à jour ?
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

dindoun a écrit :… j'ai pour l'instant résolu le problème en passant le $PATH sur /root/.bashrc , qui lui est lu.
L'assignation d'une valeur à la variable PATH dans le fichier ~/.bashrc du compte root
ne sera prise en compte que dans le cas où l'interpréteur de commande utilisé par le compte root sera /bin/bash

Par contre, l'utilisation de l'option --login de la commande su
permettra la prise en compte de la variable PATH spécifique au compte root
quelques soient les interpréteurs de commandes qui seront utilisés.
dindoun
Membre
Membre
Messages : 24
Inscription : 19 nov. 2018, 23:00
Localisation : rouen
Contact :
Status : Hors-ligne

merci
comme j'utilise bash je n'avais pas vu la subtilité :)
Répondre