mrbebert a écrit :
Bonjour
Lorsque je me connecte sur une machine Unix, j'ai mon shell (KSH) qui démarre d'une certaine façon (un "-" devant le nom du process, chargement du /etc/profile et .profile, se positionne dans la HomeDirectory du compte ...).
Mais si je le lance manuellement (depuis un autre shell), je n'ai plus ce comportement.
Est-il possible de lancer KSH en lui demandant de démarrer comme s'il s'agissait d'une nouvelle connexion ?
Merci
|
Salut
Le /etc/profile et ~/.profile sont chargés lors de la connexion, pas lors de l'appel d'un shell.
Lors de l'appel d'un shell (que ce soit par ksh depuis la ligne de commande ou par ":sh" depuis vi), c'est le fichier /etc/kshrc puis ~/.kshrc qui sont invoqués (enfin ça dépend aussi du shell invoqué car par exemple en Bourne Again shell ce sont les fichiers /etc/bash.bashrc puis ~/.bashrc).
Donc cela te permet d'affiner ton administration. Si tu veux associer certaines actions à la connexion de tout le monde tu mets ces actions dans /etc/profile. Si tu veux associer ces actions à la connexion d'une seule personne tu mets ces actions dans son ~/.profile. Si tu veux associer certaines actions à l'ouverture d'un shell par quiconque tu mets ces actions dans /etc/kshrc et si tu veux associer ces actions à l'ouverture d'un shell d'un utilisateur X tu mets ces actions dans son ~/.kshrc
Oui, le tiret postfixé à la commande lui demande de récupérer l'environnement de l'utilisateur invoqué. Donc c'est la commande qui se charge d'aller lire et traiter les fichiers /etc/profile et autres. Tu peux toi aussi programmer un clone de su qui fait pareil (ou même mieux le récupérer chez-toi et exécuter cette copie si tu veux invoquer un shell pour toi) mais il n'existe pas d'outil de base permettant de simuler une connexion (parce que généralement cela n'est pas nécessaire vu la finesse que l'on a avec les divers fichiers cités précédemment)...