LOGIN(1)

NOM
login - Démarrer une session sur le système

SYNOPSIS

login [-p] [-h hôte] [nom_utilisateur] [ENV=VAR...]

login [-p] [-h hôte] -f nom_utilisateur

login [-p] -r hôte

DESCRIPTION

Le programme login permet d'établir une nouvelle session sur le système. Il est généralement invoqué après avoir répondu à l'invite de connexion login: sur le terminal de l'utilisateur. login peut être spécifique à l'interpréteur de commandes et ne devrait pas être invoqué comme un sous-processus. Lorsqu'il est appelé depuis un interpréteur de commande, login doit être exécuté comme >exec login, ce qui entraîne la sortie de l'interpréteur de commandes en cours (et ainsi empêche le nouvel utilisateur connecté de retourner à la session de l'appelant). L'exécution de login depuis un interpréteur de commandes autre qu'un interpréteur de commandes initial (« login shell ») produira un message d'erreur.

Un mot de passe est ensuite demandé à l'utilisateur. L'affichage du mot de passe est désactivé pour éviter de révéler le mot de passe. Seul un petit nombre d'échecs est permis avant que login ne quitte et que la liaison ne soit interrompue.

Si une date de fin de validité du mot de passe a été définie pour ce compte, un nouveau mot de passe pourra vous être demandé. Votre ancien mot de passe et votre nouveau mot de passe vous seront alors demandés avant de pouvoir continuer. Veuillez lire la page de manuel passwd(1) pour plus d'informations.

Après une connexion réussie, vous serez informé des messages du système et de la présence de courrier. Vous pouvez désactiver l'affichage du message du système (/etc/motd), en créant un fichier vide .hushlogin dans le répertoire de votre compte. Le message concernant les courriers sera « You have new mail. », « You have mail. », ou « No Mail. » suivant l'état de votre boîte aux lettres.

Vos identifiants d'utilisateur et de groupe seront définis en fonction des valeurs spécifiées dans le fichier /etc/passwd. Les valeurs des variables d'environnement $HOME, $SHELL, $PATH, $LOGNAME, et $MAIL seront définies en fonction des champs appropriés de l'entrée qui vous correspond. Les valeurs d'ulimit, d'umask et de nice pourront également être affectées en fonction des entrées du champ GECOS.

Sur certains systèmes, la variable d'environnement $TERM sera initialisée au type de terminal de votre tty, comme spécifié dans /etc/ttytype.

Un script d'initialisation pour votre interpréteur de commandes pourra également être exécuté. Veuillez vous référer à la section de manuel appropriée pour plus d'informations sur cette fonctionnalité.

Une connexion à un sous-système est indiquée par la présence d'un « * » comme premier caractère de l'interpréteur de commandes initial. Le répertoire personnel sera utilisé comme racine d'un nouveau système de fichiers dans lequel l'utilisateur sera connecté.

Le programme login n'est PAS responsable de la suppression d'utilisateurs dans le fichier utmp. Les responsables du nettoyage de l'appartenance des sessions de terminal sont getty(8) et init(8). Si vous utilisez login depuis un interpréteur de commandes sans exec, l'utilisateur que vous utilisez continuera à apparaître comme étant connecté même après s'être déconnecté de cette « sous-session ».

OPTIONS

-f
    Ne pas réaliser d'authentification. L'utilisateur est pré-authentifié.

    Remarque : Dans ce cas, username est nécessaire.

-h
    Nom de l'hôte distant pour cette connexion.

-p
    Préserver l'environnement.

-r
    Exécuter le protocole de connexion automatique (autologin) pour rlogin.

Les options -r, -h et -f ne peuvent être utilisées que par root.

AVERTISSEMENTS

Cette version de login comporte de nombreuses options de compilation. Seules certaines d'entre elles peuvent avoir été activées sur votre site.

L'emplacement des fichiers peut varier suivant la configuration du système.

Le programme login n'est PAS responsable de la suppression d'utilisateurs dans le fichier utmp. Les responsables du nettoyage de l'appartenance des sessions de terminal sont getty(8) et init(8). Si vous utilisez login depuis un interpréteur de commandes sans exec, l'utilisateur que vous utilisez continuera à apparaître comme étant connecté même après s'être déconnecté de cette « sous-session ».

Comme pour n'importe quel programme, l'apparence de login peut être imitée. Si des utilisateurs non sûrs ont un accès physique à la machine, un attaquant pourrait utiliser cet accès pour obtenir le mot de passe de la personne qui s'assiérait ensuite face à l'écran. Sous Linux, le mécanisme SAK peut être utilisé par les utilisateurs pour initier un chemin de confiance et prévenir ce genre d'attaques.

CONFIGURATION

Les variables de configuration suivantes dans /etc/login.defs modifient le comportement de cet outil :

CONSOLE (chaîne de caractères)
    Si définie, soit un chemin complet du fichier contenant les noms de périphériques (un par ligne), soit une liste de noms du périphérique délimitée par des « : ». Les connexions d'un administrateur ne seront autorisées que depuis ces périphériques.

    S'il n'est pas défini, root pourra se connecter depuis n'importe quel périphérique.

    Le périphérique doit être précisé sans le préfixe /dev/.

CONSOLE_GROUPS (chaîne de caractères)
    Une liste de groupes à rajouter aux groupes supplémentaires de l'utilisateur lors d'une connexion sur une console (déterminé par le paramètre CONSOLE). Par défaut, aucun groupe n'est ajouté.

    À utiliser avec précaution : il est possible que les utilisateurs aient un accès permanent à ces groupes, et cela même s'ils ne sont pas connectés sur la console.

DEFAULT_HOME (booléen)
    Indiquer si la connexion est permise si on ne peut pas accéder au répertoire personnel. Le réglage par défaut est « no ».

    Si elle est configurée à yes, l'utilisateur va se connecter dans le répertoire racine (/) s'il n'est pas possible d'accéder à son répertoire personnel.

ENV_HZ (chaîne de caractères)
    Si définie, sera utilisée pour définir la variable d'environnement HZ lorsqu'un utilisateur se connecte. La valeur doit être précédée par HZ=. Une valeur commune sur Linux est HZ=100.

ENV_PATH (chaîne de caractères)
    Si définie, sera utilisée pour définir la variable d'environnement PATH quand un utilisateur ordinaire se connecte. La valeur est une liste de chemins séparés par des deux points (par exemple /bin:/usr/bin) et peut être précédée par PATH=. La valeur par défaut est PATH=/bin:/usr/bin.

ENV_SUPATH (chaîne de caractères)
    Si définie, sera utilisée pour définir la variable d'environnement PATH quand le super-utilisateur se connecte. La valeur est une liste de chemins séparés par deux points (par exemple /sbin:/bin:/usr/sbin:/usr/bin) et peut être précédée par PATH=. La valeur par défaut est PATH=/sbin:/bin:/usr/sbin:/usr/bin.

ENV_TZ (chaîne de caractères)
    Si définie, sera utilisée pour définir la variable d'environnement TZ quand un utilisateur se connecte. La valeur peut être le nom d'un fuseau horaire précédé par TZ= (par exemple TZ=CST6CDT), ou le chemin complet vers le fichier contenant la spécification du fuseau horaire (par exemple /etc/tzname).

    Si un chemin complet est spécifié mais que le fichier n'existe pas ou ne peut pas être lu, la valeur par défaut utilisée est TZ=CST6CDT.

ENVIRON_FILE (chaîne de caractères)
    Si ce fichier existe et est lisible, l'environnement de connexion sera lu à partir de lui. Chaque ligne doit être sous la forme nom=valeur.

    Les lignes commençant par un « # » sont considérées comme des commentaires, et sont ignorées.

ERASECHAR (nombre)
    Le caractère ERASE du terminal (010 = backspace, 0177 = DEL).

    La valeur peut être préfixée par « 0 » pour une valeur octale, ou « 0x » pour une valeur hexadécimale.

FAIL_DELAY (nombre)
    Le délai en secondes avant qu'un nouvel essai soit permis après un échec de connexion.

FAILLOG_ENAB (booléen)
    Activer l'enregistrement et l'affichage des informations d'échec de connexion de /var/log/faillog

FAKE_SHELL (chaîne de caractères)
    Si définie, login exécutera cet interpréteur de commandes au lieu de l'interpréteur de l'utilisateur spécifié dans /etc/passwd.

FTMP_FILE (chaîne de caractères)
    Si définie, les échecs de connexion seront enregistrés dans le fichier sous le format utmp

HUSHLOGIN_FILE (chaîne de caractères)
    Si définie, le fichier peut désactiver tous les affichages habituels durant la séquence de connexion. Si un nom de chemin complet est spécifié, alors le mode taiseux sera activé si le nom ou l'interpréteur de commandes de l'utilisateur sont trouvés dans le fichier. Si ce n'est pas un nom de chemin complet, alors le mode taiseux sera activé si le fichier existe dans le répertoire personnel de l'utilisateur.

ISSUE_FILE (chaîne de caractères)
    Si définie, le fichier sera affiché avant chaque invite de connexion.

KILLCHAR (nombre)
    Le caractère KILL du terminal (025 = CTRL/U).

    La valeur peut être préfixée par « 0 » pour une valeur octale, ou « 0x » pour une valeur hexadécimale.

LASTLOG_ENAB (booléen)
    Activer la journalisation et l'affichage des informations de dernière connexion de /var/log/lastlog.

LOGIN_RETRIES (nombre)
    Le nombre maximum de tentatives de connexion en cas de mauvais mot de passe.

LOGIN_STRING (chaîne de caractères)
    La chaîne de caractères utilisée pour l'invite de mot de passe. La valeur par défaut est d'utiliser "Password: " (« mot de passe : »), ou une traduction de cette chaîne. Si vous définissez cette variable, l'invite ne sera pas traduite.

    Si la chaîne contient %s, ces caractères seront remplacés par le nom de l'utilisateur.

LOGIN_TIMEOUT (nombre)
    Le temps maximum en secondes pour la connexion.

LOG_OK_LOGINS (booléen)
    Activer la journalisation des connexions réussies.

LOG_UNKFAIL_ENAB (booléen)
    Activer l'affichage des noms d'utilisateurs inconnus quand les échecs de connexions sont enregistrés.

    Remarque : la journalisation des noms d'utilisateurs inconnus peut être un problème de sécurité si un utilisateur entre son mot de passe au lieu de son nom d'utilisateur.

MAIL_CHECK_ENAB (booléen)
    Activer le contrôle et l'affichage du statut de la boîte aux lettres durant la connexion.

    Vous devriez le désactiver si les fichiers de démarrage de l'interpréteur de commandes vérifient déjà la présence de courriers (« mail -e » ou équivalent).

MAIL_DIR (chaîne de caractères)
    Répertoire d'attente des courriels (« mail spool directory »). Ce paramètre est nécessaire pour manipuler les boîtes à lettres lorsque le compte d'un utilisateur est modifié ou supprimé. S'il n'est pas spécifié, une valeur par défaut définie à la compilation est utilisée.

MAIL_FILE (chaîne de caractères)
    Définir l'emplacement des boîtes aux lettres des utilisateurs relativement à leur répertoire personnel.

Les paramètres MAIL_DIR et MAIL_FILE sont utilisés par useradd, usermod et userdel pour créer, déplacer ou supprimer les boîtes aux lettres des utilisateurs.

Si MAIL_CHECK_ENAB est réglé sur yes, ces variables servent également à définir la variable d'environnement MAIL.

MOTD_FILE (chaîne de caractères)
    Si définie, liste délimitée par des « : » de fichiers de « message du jour » à afficher lors de la connexion.

NOLOGINS_FILE (chaîne de caractères)
    Si définie, nom de fichier dont la présence empêchera les connexions de quelqu'un d'autre que le superutilisateur. Le contenu de ces fichiers doit être un message indiquant pourquoi les connexions sont désactivées.

PORTTIME_CHECKS_ENAB (booléen)
    Activer la vérification des restrictions de temps précisées dans /etc/porttime.

QUOTAS_ENAB (booléen)
    Activer la mise en place de limites de resources depuis /etc/limits et ulimit, umask et niveau nice depuis les champs gecos de passwd.

TTYGROUP (chaîne de caractères), TTYPERM (chaîne de caractères)
    Les permissions de terminal : la connexion tty appartiendra au groupe TTYGROUP et les permissions seront configurées à TTYPERM.

    Par défaut, le propriétaire du terminal est configuré au groupe primaire de l'utilisateur et les permissions sont configurées à 0600.

    TTYGROUP peut être le nom d'un groupe ou un identifiant numérique de groupe.

    Si vous avez un programme write qui est « setgid » à un groupe spécial auquel les terminaux appartiennent, définissez TTYGROUP comme l'identifiant numérique du groupe et TTYPERM à 0620. Autrement laissez TTYGROUP décommenté et TTYPERM configuré soit à 622 soit à 600.

TTYTYPE_FILE (chaîne de caractères)
    Si définie, fichier qui lie les lignes de tty à la variable d'environnement TERM. Chaque ligne du fichier est dans un format ressemblant à « vt100 tty01 ».

ULIMIT (nombre)
    Valeur par défaut d'ulimit.

UMASK (nombre)
    Valeur d'initialisation du masque de permissions. S'il n'est pas précisé, le masque des permissions sera initialisé à 022.

    useradd et newusers utilisent ce masque pour définir les permissions d'accès des répertoires personnels qu'ils créent.

    Il est également utilisé par login pour définir l'umask initial de l'utilisateur. Veuillez noter que cet umask peut être redéfini par les GECOS de l'utilisateur (si QUOTAS_ENAB est activé) ou en précisant une limite avec l'identifiant K dans limits(5).

USERGROUPS_ENAB (booléen)
    Activer la mise en place de bits de masque de groupe (« umask group bits ») identiques à ceux du propriétaire (exemple : 022 -> 002, 077 -> 007) pour les utilisateurs non privilégiés, si l'UID est identique au GID et que l'identifiant de connexion est identique au groupe principal.

    Si cette variable est configurée à yes, userdel supprimera le groupe de l'utilisateur s'il ne contient pas d'autres membres, et useradd créera par défaut un groupe portant le nom de l'utilisateur.

FICHIERS

/var/run/utmp
    Liste des sessions de connexion en cours.

/var/log/wtmp
    Liste des sessions de connexion précédentes.

/etc/passwd
    Informations sur les comptes des utilisateurs.

/etc/shadow
    Informations sécurisées sur les comptes utilisateurs.

/etc/motd
    Fichier contenant le message du système.

/etc/nologin
    Empêcher les utilisateurs non-root de se connecter.

/etc/ttytype
    Liste des types de terminaux.

$HOME/.hushlogin
    Supprimer l'affichage des messages du système.

/etc/login.defs
    Configuration de la suite des mots de passe cachés « shadow password ».

VOIR AUSSI

mail(1), passwd(1), sh(1), su(1), login.defs(5), nologin(5), passwd(5), securetty(5), getty(8).