• # Re: Login et chargement d'environnement.

    Posté par (site web personnel) . En réponse au message Login et chargement d'environnement.. Évalué à 0.

    Extraordinaire ! quelqu'un qui construit une LFS sans savoir ce
    qu'il fait et sans connaitre les man ....

    man bash:


    INVOCATION
    Un shell est dit de login si le premier caractère de son argument numéro zéro est un -, ou s'il est invoqué avec l'option -login.

    Un shell est interactif si son entrée standard et sa sortie standard sont toutes deux connectées à un terminal (déterminé par la fonction
    isatty(3)), ou s'il est invoqué avec l'option -i. Le paramètre PS1 est positionné, et le paramètre $- contient la lettre i si bash est
    interactif, ce qui permet à un script ou à un fichier de démarrage de vérifier l'état du shell.

    Le paragraphe suivant décrit comment bash exécute ses fichiers d'initialisation. Si l'un de ces fichiers existe mais n'est pas accessible
    en lecture, bash signale une erreur. Les tildes sont remplacées par des noms de fichiers comme décrit dans le paragraphe Développement du
    Tilde de la section Développement.

    Lorsque bash est lancé comme shell de login interactif, ou comme shell non-interactif avec l'option --login, il lit et exécute tout d'abord
    les commandes se trouvant dans le fichier /etc/profile s'il existe. Après lecture de ce fichier, il recherche ~/.bash_profile,
    ~/.bash_login, et ~/.profile, dans cet ordre, et exécute les commande se trouvant dans le premier fichier existant et accessible en lecture.
    L'option --noprofile peut être utilisée au démarrage du shell pour empêcher ce comportement.

    Lorsqu'un shell de login se termine, bash lit et exécute les commandes du fichier ~/.bash_logout, s'il existe.

    Quand un shell interactif démarre sans être un shell de login, bash lit et exécute les commandes se trouvant dans ~/.bashrc s'il existe. Ce
    comportement peut être inhibé à l'aide de l'option --norc. L'option --rcfile fichier forcera bash à exécuter les commandes dans fichier
    plutôt que dans ~/.bashrc.

    Quand bash est démarré de manière non-interactive, pour lancer un script shell par exemple, il recherche la variable BASH_ENV dans l'envi-
    ronnement, développe son contenu si elle existe, et considère cette valeur comme le nom d'un fichier à lire et exécuter. Bash se comporte
    comme si la commande suivante se trouvait en début de script :
    if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
    mais la valeur de la variable PATH n'est pas utilisée pour rechercher le fichier.

    Si bash est invoqué sous le nom sh, il essaye d'imiter le comportement de démarrage des versions historiques de sh autant que possible, tout
    en restant conforme au standard Posix. Lorsqu'il est invoqué comme shell de login interactif (ou non-interactif avec l'option --login), il
    essaye d'abord d'exécuter les commandes se trouvant dans /etc/profile et ~/.profile, dans cet ordre. L'option -noprofile peut toujours être
    utilisée pour désactiver ce comportement. Quand il est invoqué en tant que shell interactif sous le nom sh, bash consulte la variable ENV,
    développe sa valeur si elle est définie et utilise le résultat en tant que nom de fichier à lire et exécuter. Comme un shell invoqué sous
    le nom sh n'essaye pas d'exécuter d'autre fichier de démarrage, l'option --rcfile n'a aucun effet. Un shell non interactif invoqué sous le
    nom sh ne lit aucun autre fichier d'initialisation. Quand il est invoqué sous le nom sh, bash entre en mode posix après avoir lu les
    fichiers d'initialisation.

    Quand bash est invoqué en mode posix, avec l'option -posix sur la ligne de commande, il suit ce standard en ce qui concerne les fichiers de
    démarrage. Dans ce cas, la variable ENV est développée, et le fichier qui en résulte est exécuté. On n'exécute pas d'autre fichier d'ini-
    tialisation.

    Bash tente de déterminer s'il est exécuté par le démon lançant les shells distants (généralement appelé rshd ). Si bash se rend compte
    qu'il est exécuté par rshd, il lit et exécute les commandes de ~/.bashrc si ce fichier existe et est lisible. Il n'a pas ce comportement
    lorsqu'il est invoqué sous le nom sh. L'option --norc peut être utilisé pour interdire ce comportement, et l'option --rcfile permet de
    forcer l'utilisation d'un autre fichier, mais rshd n'utilise généralement pas ces options et ne permet pas non plus leur utilisation.

    Si le shell est lancé avec un identifiant effectif d'utilisateur (ou de groupe) différent de l'identifiant réel, et si l'option -p n'est pas
    utilisée, aucun fichier d'initialisation n'est lu, les fonctions du shell ne sont pas importées depuis l'environnement, la variable SHEL-
    LOPTS est ignorée si elle apparaît dans l'environnement, et l'identifiant effectif de l'utilisateur (du groupe) est remplacé par l'ID réel.
    Si l'option -p est fournie, le démarrage est le même mais l'ID effectif n'est pas modifié.


    Quand aux permission root:root et 644 pour tout les fichiers dans /etc