François-Marie Billard, au 2019-08-31 :
Je cherche à savoir ou configure la valeur de la variable
d'environnement HOME, suite à un problème du à un ajout du
second disque pour y mettre le /home dont je décris la procédure
ci-dessous :
* J'ai créer un utilisateur de test , puis copié les données de
son répertoire /home/test sur le nouveau disque. Avec les
mêmes droits.
* J'ai modifié dans le fichier fstab la ligne du /home avec
l'UUID du nouveau disque
Au reboot et je découvre que lors du logging en mode texte avec
mon utilisateur de test la variable HOME n'est pas configurée.
Un logging via l'interface graphique boucle instantanément sur
la fenêtre de logging.
Bonjour,
Quelle procédure avez vous utilisé pour créer "test" ?
Normalement, si la variable HOME ne fait pas partie de
l'environnement, alors le shell va chercher sa définition dans
le fichier /etc/passwd, voir passwd(5) pour plus de détails sur
le format du fichier. Par exemple, pour mon utilisateur, j'ai :
$ grep emollier /etc/passwd
emollier:x:1000:1000:Etienne Mollier,,,:/home/emollier:/bin/bash
^~~~USER ^UID ^~~~~~~~~~HOME ^~~~SHELL
Cette entrée permet de remplir, outre HOME, quelques variables
supplémentaires, indiquées ci-dessus.
Si vous voulez vraiment creuser dans les détails, en tout cas
pour le shell Bash, le code source décrit exactement la
procédure suivie:
- la fonction get_current_user_info() définie dans shell.c
s'occupe de récupérer les informations stockées dans une
structure après lecture du fichier /etc/passwd ;
- la fonction set_home_var() de variables.c va s'occuper de
remplir la variable d'environnement HOME, si elle n'est pas
déjà
Bien sûr, si vous utilisez un autre shell que Bash, alors la
procédure exactement suivie peut être un chouïa différente, mais
c'est l'idée. :)
Amicalement,