Re: un nouveau.. mecanisme de login

Top Page

Reply to this message
Author: Thierry de Villeneuve
Date:  
To: guilde
Old-Topics: un nouveau..
Subject: Re: un nouveau.. mecanisme de login
Bonsoir

Dans l'absolue théorie (tous UNIX)

Quand le user se logue avec un tty (à partir d'un écran, là où des infos peuvent être affichées en retour)

1/
sont éxecutés: (je suis un ksh man, excuse si imprecisions sur autres shels)

- un profile generique, généralement en /etc/profile

- un profile de user en: ~user/.profile ou ~user/.login
suivant le type de shell (ksh, bash, sh, csh)

- Si ce .profile positionne une variable d'environnement ENV
contenant un fichier ~user/.kshrc, .cshrc, .bashrc alors
celui-ci est éxecuté.

Tout ceci se passe lors de l'éxecution de commandes comme

un login, un rlogin, un remsh -l user, un su -


2/
A chaque fois qu'une application qqconque "spawn" un process, ce process hérite de l'environnement (positionnne par le .profile initial) et re-éxécute le programme spécifié en $ENV). Ce process répondra par une erreur 1 à la commande tty (ou tty -s). Ceci indique qu'il n'y a pas de terminal associé où retourner une valeur (ne pas confonfre avec le $DISPLAY qui donne l'adresse X de ce terminal).

Il faut faire attention à ne pas mettre en .profile et .*shrc de commandes qui ne peuvent s'éxécuter qu'avec un tty. Une erreur serait notifiée. Faire obligatoirement un test if [ tty -s ] et placer ces commandes, notamment celles positionnant PS1, variable shell du prompt.


3/
Dans le cas où le login s'effectue à partir d'une machine sous HP-VUE, ou DCE. Un programme spécial prend la main, soit vuelogin, soit dtlogin. Il est appelé par l'écran qui affiche le logo DCE ou HP-VUE (vuegreet ou dtgreet). Il y a un autre script éxécuté par défaut, par root, en /etc/dt/something (plus ceraint, de mémoire).


Il faut savoir que les .profile. /etc/profile, .bashrc n'ont pas à être des "éxécutables". Il faut les mettre en 0400.

Pour les lancer à la main, il faut faire précéder la comande par un ". ". Cela a pour effet de permettre au process "fils" de modifier l'environnemen du process "père".


. ./.profile
. ./.bashrc


Truc: ne jamais faire de modif sur son .profile, ni .bashrc sans avoir une autre session ouverte dans une autre fenêtre. Si le .profile ou .bashrc se plante, on ne peut plus se loguer.


Voila. Je rappelle que ma culture est essentiellement ksh. Il se peut que j'ai dit des bétises. Merci de faire les corrections nécessaire.


Thierry



>bonjour!
>je viens d'entendre parler de votre liste, et etant sur grenoble et passionne de linux, je viens de m'y abonner...
>j'ai une question pour commencer, quand je me logge en tant qu'utilisateur sur une machine distante et que je me logge ensuite par un 'su' je perd toutes mes p preferences (alias, etc...) dans quel fichier dois-je mettre les alias que je veux pour ma session en 'su'? (le tres precieux alias ls="ls --color")



>Lorsque tu lances bash, celui-ci commence par lire le fichier .bashrc,
>situé dans le répertoire par defaut (/root dans le cas du su). Il suffit
>donc que te recopies celui qui se trouve dans ton propre répertoire (si tu
>te logues sous truc, ton répertoire par defaut est /home/truc).
>
>Il y a un autre fichier qui est lu par tous les shells je crois, mais je
>ne le connais pas. Je pense que quelqu'un de Guilde peut (re-)expliquer ça.


=== eom =============================================================
Thierry de Villeneuve                             San Diego, CA 92128
home e-mail thierryv@???                 voice +1 (619) 679-3366
prof e-mail thierry.de-villeneuve@???        fax +1 (619) 679-3395
http://users.abac.com/thierryv/                  http://www.efsd.org/