Hello !
Je viens d'installer un LFS pour la nième fois, mais je m'aperçois qu'il y a un truc que je n'ai toujours pas compris.
Quelqu'un aurait-il la bonté de m'expliquer clairement et simplement à quoi servent les fichiers
/etc/profile
/etc/bashrc
/etc/profile.d/*.sh
/etc/default/*
~/.profile
~/.bashrc
et dans quel ordre ils sont chargés ?
Quoi que je fasse, il y en a toujours un qui n'est pas chargé.
Par exemple : je viens de modifier mon fichier /etc/bashrc, pour y ajouter quelques aliases. Si je ne fais pas ". /etc/bashrc" ou "source /etc/bashrc", mes aliases ne sont pas chargés.
Comme vous l'aurez compris, j'utilise bash.
Pendant qu'on y est, quelles sont les permissions à appliquer à ces fichiers, pour qu'ils soient utilisables pour tous les utilisateurs sans compromettre la sécurité du système, etc.
Merci @ vous !
# Re: Login et chargement d'environnement.
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 0.
qu'il fait et sans connaitre les man ....
man bash:
Quand aux permission root:root et 644 pour tout les fichiers dans /etc
[^] # Re: Login et chargement d'environnement.
Posté par pini . Évalué à 2.
En revanche, ayant déjà été dans la même situation que D B à m'arracher les cheveux sur les Bash Startup Files, je n'ai jamais trouvé de description convaincante sur la convention associée aux scripts suivants, et la façon propre de les appeler dans les ~/.bash_profile et ~/.bashrc :
/etc/profile
/etc/bashrc
/etc/profile.d/*.sh
Si quelqu'un a un pointeur sur une telle page, je prends et je plussoie des deux mains.
--
[^] # Re: Login et chargement d'environnement.
Posté par Gyro Gearllose . Évalué à 5.
Selon toi, si on installe un LFS, on est censé tout connaître ? Pour moi, c'était plutôt une façon didactique d'installer un linux, justement pour comprendre comment ça marche.
Alors, merci bien, les systèmes info, man, --help, je connais et je sais lire. Mais ça n'empêche pas d'avoir des points d'ombre de de demander un éclaircissement à ceux qui savent.
Voir mon post ci-dessous pour un complément de réponse.
En lisant la doc, je n'avais pas fait attention, et je croyais que le /etc/bashrc était parsé par défaut par bash, mais ce n'est visiblement pas le cas. Tout le monde peut se tromper.
Merci quand même.
# logique
Posté par fearan . Évalué à 2.
Non il n'y a pas d'auto reload
ensuite modifier les /etc/...
déjà parler de "mon" fichier /etc/bashrc est une hérésie
mon fichier ~/.bashrc oui, mais ce qui est dans /etc appartient au système et seul root a le droit de les modifier ( normalement )
comme permissions un chmod 644 devrai être bon :P
ensuite pour recharger un bash apres les avoir modifés : exec bash ( remplacement du process courrant par bash )
pour recharger juste les fichier . ou source marchent très bien :)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: logique
Posté par Gyro Gearllose . Évalué à 2.
Evidement, tourné comme ça, ça ne veut rien dire... Comme je travaille sur ma machine perso, je parlais de mon fichier, dans le sens "il m'appartient", pas au sens système....
Pour le coup des droits, je suis d'accord, ça me va bien.
Je pensais plutôt aux droits d'exécution, mais visiblement, il n'y en a pas besoin.
Il faut quand même avouer que c'est un peu le bordel dans le chargement de ces fichiers....
Si j'ai bien tout compris, le /etc/profile se charge tout seul ; il a la responsabilité de charger tout ce qui est dans /etc/profile.d/. Le ~/.bash_profile s'occupe de charger ~/bashrc. Ce dernier s'occupe de charger /etc/bashrc.
Ben oui, c'est si simple !
J'aurais plutôt pensé que bash saurait retrouver ses petits tout seul, mais non, ce n'est pas le cas. Par ailleurs, en fonctionnant ainsi, on peut voir l'environnement utilisateur écrasé par la conf système, alors qu'on se serait plutôt attendu au contraire.
Pour le coup du rechargement, merci, je savais. Je n'en demandais pas tant !
[^] # Re: logique
Posté par JolieLara . Évalué à 1.
C'est justement le contraire: d'abord les fichiers système sont lus (ceux dans /etc/), puis ceux de l'utilisateur (~/.*rc).
Lorsque tu te connectes (login en anglais) pour la première fois (après avoir rallumé ta machine, par exemple), ton fichier ~/.bash_profile est lu.
Ensuite, à chaque lancement de console (non graphique) ou de terminal (dans un quelconque environnement graphique comme Gnome, KDE...), ton fichier ~/.bashrc est lu.
Tu peux faire le test en lançant un terminal Gnome ou KDE, selon ce que tu utilises, dans lequel tu modifies ton fichier ~/.bashrc (en ajoutant un alias, par exemple).
Si tu sors de l'éditeur de texte (vi, par exemple) et tapes ce nouvel alias, tu verras que ton shell courant (bash ici) ne le reconnaît pas parce que ce shell a lu ton fichier ~/.bashrc tel qu'il était avant que tu n'y ajoutes l'alias.
En revanche, en lançant un autre terminal, il va lire le fichier ~/.bashrc avec le nouvel alias et tu verras que ce nouveau shell "connaît" ce nouvel alias...
C'est encore plus "spectaculaire" en restant dans le même terminal et en lançant directement un nouveau shell, en tapant "bash": tu peux alors utiliser ton nouvel alias.
Tape "exit" pour quitter ce nouveau shell: tu te retrouves dans l'"ancien" shell et là, le nouvel alias n'existe pas, puisque ce shell a été lancé avant que tu n'ajoutes cet alias dans ton ~/.bashrc! :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.