LOGIN.DEFS(5)

NOM
login.defs - configuration de la suite des mots de passe cachés « shadow password »

DESCRIPTION

Le fichier /etc/login.defs définit la configuration de la suite shadow password (mots de passe cachés) pour le système. Ce fichier est indispensable. Son absence n'empêchera pas le système de fonctionner, mais aura probablement des conséquences indésirables.

Ce fichier est un fichier texte, dont chaque ligne décrit un paramètre de configuration. Les lignes consistent en un nom et une valeur, séparés par une espace. Les lignes blanches et les lignes de commentaires sont ignorées. Les commentaires commencent par un caractère « # », qui doit être le premier caractère non blanc de la ligne.

Les valeurs des paramètres sont de quatre types : chaînes de caractères, booléens, nombres et nombres longs. Une chaîne de caractères est constituée de n'importe quels caractères imprimables. Un booléen est soit yes (oui), soit no (non). Un paramètre booléen non défini, ou défini avec une valeur autre que celles-là prendra la valeur no. Un nombre (normal ou long) peut être soit décimal, soit octal (en précédant la valeur d'un 0), ou encore hexadécimal (en précédant la valeur de 0x). La valeur maximale des paramètres numériques normaux ou longs dépend de la machine.

Les paramètres de configuration suivants sont fournis :

CHFN_AUTH (booléen)
    La valeur yes indique que le programme chfn nécessitera une authentification avant de procéder à tout changement, à moins qu'ils ne soient exécutés par le superutilisateur.

CHFN_RESTRICT (chaîne de caractères)
    Ce paramètre précise quelles valeurs du champ gecos du fichier passwd peuvent être modifiées par les utilisateurs ordinaires à l'aide du programme chfn. Il est constitué d'une combinaison de lettres parmi f, r, w et h, correspondant respectivement au nom complet, au numéro de bureau, au numéro de téléphone professionnel et au numéro de téléphone personnel. Pour des raisons de compatibilité avec des versions antérieures, yes est équivalent à rwh et no à frwh. S'il n'est pas précisé, seul le superutilisateur peut effectuer des modifications. Pour une configuration encore plus restrictive, il sera préférable de ne pas installer chfn avec l'indicateur SUID positionné.

CHSH_AUTH (booléen)
    La valeur yes indique que le programme chsh nécessitera une authentification avant de procéder à tout changement, à moins qu'ils ne soient exécutés par le superutilisateur.

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.

CREATE_HOME (boolean)
    Indiquer si un répertoire personnel doit être créé par défaut pour les nouveaux utilisateurs.

    Ce réglage ne s'applique pas pour les utilisateurs système, et peut être annulé sur la ligne de commande.

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.

ENCRYPT_METHOD (chaîne de caractères)
    Définir les algorithmes de chiffrement par défaut du système pour coder les mots de passes (si aucun algorithme n'a été indiqué sur la ligne de commandes).

    Les valeurs suivantes sont acceptées : DES (par défaut), MD5, SHA256, SHA512.

    Remarque : ce paramètre remplace la variable MD5_CRYPT_ENAB.

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

GID_MAX (nombre), GID_MIN (nombre)
    Plage d'identifiants numériques de groupes que les commandes useradd, groupadd ou newusers peuvent utiliser pour la création des groupes normaux.

    La valeur par défaut pour GID_MIN (respectivement GID_MAX) est 1000 (respectivement 60000).

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.

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.

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.

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.

MAX_MEMBERS_PER_GROUP (nombre)
    Nombre maximum de membres par entrée de groupe. Lorsque le maximum est atteint, une nouvelle entrée de groupe (ligne) est démarrée dans /etc/group (avec le même nom, même mot de passe, et même GID).

    La valeur par défaut est 0, ce qui signifie qu'il n'y a pas de limites pour le nombre de membres dans un groupe.

    Cette fonctionnalité (groupe découpé) permet de limiter la longueur des lignes dans le fichier de groupes. Ceci est utile pour s'assurer que les lignes pour les groupes NIS ne sont pas plus grandes que 1024 caractères.

    Si vous avez besoin de configurer cette limite, vous pouvez utiliser 25.

    Remarque : les groupes découpés ne sont peut-être pas pris en charge par tous les outils (même dans la suite d'outils Shadow). Vous ne devriez pas utiliser cette variable, sauf si vous en avez vraiment besoin.

MD5_CRYPT_ENAB (booléen)
    Indiquer si un mot de passe doit être chiffré en utilisant l'algorithme basé sur MD5. Si configurée à yes, les nouveaux mots de passe seront chiffrés en utilisant l'algorithme basé sur MD5 compatible avec celui utilisé par les versions récentes de FreeBSD. Il gère des mots de passe de longueur illimitée et des chaînes de salage plus longues. Configurez-la à no pour copier les mots de passe chiffrés sur d'autres systèmes qui ne comprennent pas le nouvel algorithme. la valeur par défaut est no.

    Cette variable est écrasée par la variable ENCRYPT_METHOD ou par toute option de la ligne de commande utilisée pour configurer l'algorithme de chiffrement.

    Cette variable est obsolète. Vous devriez utiliser ENCRYPT_METHOD.

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.

OBSCURE_CHECKS_ENAB (booléen)
    Activer des vérifications supplémentaires lors des changements de mot de passe.

PASS_ALWAYS_WARN (booléen)
    Avertir en cas de mots de passe faibles (mais les accepte quand même) si vous êtes superutilisateur.

PASS_CHANGE_TRIES (nombre)
    Nombre maximum d'essais pour changer de mot de passe si refusé (trop facile).

PASS_MAX_DAYS (nombre)
    Nombre maximum de jours de validité d'un mot de passe. Après cette durée, une modification du mot de passe est obligatoire. S'il n'est pas précisé, la valeur de -1 est utilisée (ce qui enlève toute restriction).

PASS_MIN_DAYS (nombre)
    Nombre minimum de jours autorisé avant la modification d'un mot de passe. Toute tentative de modification du mot de passe avant cette durée est rejetée. S'il n'est pas précisé, la valeur de -1 est utilisée (ce qui enlève toute restriction).

PASS_WARN_AGE (nombre)
    Nombre de jours durant lesquels l'utilisateur recevra un avertissement avant que son mot de passe n'arrive en fin de validité. Une valeur négative signifie qu'aucun avertissement n'est donné. S'il n'est pas précisé, aucun avertissement n'est donné.

Les paramètres PASS_MAX_DAYS, PASS_MIN_DAYS et PASS_WARN_AGE ne sont utilisés qu'au moment de la création d'un compte. Les changements n'affecteront pas les comptes existants.

PASS_MAX_LEN (nombre), PASS_MIN_LEN (nombre)
    Nombre de caractères significatifs dans le mot de passe pour crypt(). La valeur par défaut de PASS_MAX_LEN est 8. Ne la changez pas à moins que votre crypt() ne soit meilleur. Ceci est ignoré si MD5_CRYPT_ENAB est configurée à yes.

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.

SHA_CRYPT_MIN_ROUNDS (nombre), SHA_CRYPT_MAX_ROUNDS (nombre)
    Quand ENCRYPT_METHOD est configurée à SHA256 ou SHA512, cela définit le nombre de rounds de SHA utilisés par l'algorithme de chiffrement par défaut (quand le nombre de rounds n'est pas précisé sur la ligne de commande).

    Avec beaucoup de rounds, il est plus difficile de trouver le mot de passe avec une attaque par force brute. Veuillez remarquer que plus de ressources processeur seront nécessaires pour authentifier les utilisateurs.

    Si non précisée, la libc utilisera le nombre de rounds par défaut (5000).

    Les valeurs doivent être comprises dans l'intervalle 1 000 - 999 999 999.

    Si une seule des variables SHA_CRYPT_MIN_ROUNDS ou SHA_CRYPT_MAX_ROUNDS est configurée, alors cette valeur sera utilisée.

    Si SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS, la valeur la plus élevée sera utilisée.

SULOG_FILE (chaîne de caractères)
    Si définie, les activités de su seront enregistrées dans le fichier.

SU_NAME (chaîne de caractères)
    Si définie, le nom de la commande à afficher lorsque « su - » est exécutée. Par exemple, si elle est définie à « su » alors un « ps » affichera la commande comme « -su ». Si non définie, alors « ps » affichera le nom du shell qui sera en fait exécuté, par exemple quelque chose comme « -sh ».

SU_WHEEL_ONLY (booléen)
    Si yes, l'utilisateur doit faire partie des membres du groupe avec le premier gid 0 dans /etc/group (appelé root sur la plupart des systèmes Linux) pour être capable de su vers des comptes à uid 0. Si ce groupe n'existe pas ou est vide, personne ne pourra su vers un uid 0.

SYS_GID_MAX (nombre), SYS_GID_MIN (nombre)
    Plage d'identifiants numériques de groupes que les commandes useradd, groupadd ou newusers peuvent utiliser pour la création de groupes système.

    La valeur par défaut pour SYS_GID_MIN (respectivement SYS_GID_MAX) est 101 (respectivement GID_MIN-1).

SYS_UID_MAX (nombre), SYS_UID_MIN (nombre)
    Plage d'identifiants numériques d'utilisateurs que les commandes useradd ou newusers peuvent utiliser pour la création d'utilisateurs système.

    La valeur par défaut pour SYS_UID_MIN (respectivement SYS_UID_MAX) est 101 (respectivement UID_MIN-1).

SYSLOG_SG_ENAB (booléen)
    Activer la journalisation « syslog » de l'activité de sg.

SYSLOG_SU_ENAB (booléen)
    Activer la journalisation « syslog » de l'activité de su - en plus de la journalisation sulog.

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 ».

UID_MAX (nombre), UID_MIN (nombre)
    Plage d'identifiants numériques d'utilisateurs que les commandes useradd ou newusers peuvent utiliser pour la création d'utilisateurs normaux.

    La valeur par défaut de UID_MIN (respectivement UID_MAX) est 1000 (respectivement 60000).

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).

USERDEL_CMD (chaîne de caractères)
    Si définie, la commande est exécutée lors de la suppression d'un utilisateur. Elle pourra supprimer toutes les tâches périodiques cron ou at, tous les travaux d'impression, etc. de l'utilisateur (qui sera fourni comme premier paramètre).

    Le code de retour du script n'est pas pris en compte.

    Voici un script exemple, qui supprime le fichier d'entrée de cron et d'at ainsi que les travaux d'impression en attente ;

        #! /bin/sh
        # Check for the required argument.
        if [ $# != 1 ]; then
        	echo "Usage: $0 username"
        	exit 1
        fi
        # Remove cron jobs.
        crontab -r -u $1
        # Remove at jobs.
        # Note that it will remove any jobs owned by the same UID,
        # even if it was shared by a different username.
        AT_SPOOL_DIR=/var/spool/cron/atjobs
        find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;
        # Remove print jobs.
        lprm $1
        # All done.
        exit 0

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.

RÉFÉRENCES CROISÉES

Les références croisées ci-dessous montrent quels sont les paramètres utilisés par les différents programmes de la suite shadow password.

chfn
    CHFN_AUTH CHFN_RESTRICT LOGIN_STRING

chgpasswd
    ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

chpasswd
    ENCRYPT_METHOD MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

chsh
    CHSH_AUTH LOGIN_STRING

gpasswd
    ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

groupadd
    GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP SYS_GID_MAX SYS_GID_MIN

groupdel
    MAX_MEMBERS_PER_GROUP

groupmems
    MAX_MEMBERS_PER_GROUP

groupmod
    MAX_MEMBERS_PER_GROUP

grpck
    MAX_MEMBERS_PER_GROUP

grpconv
    MAX_MEMBERS_PER_GROUP

grpunconv
    MAX_MEMBERS_PER_GROUP

login
    CONSOLE CONSOLE_GROUPS DEFAULT_HOME ENV_HZ ENV_PATH ENV_SUPATH ENV_TZ ENVIRON_FILE ERASECHAR FAIL_DELAY FAILLOG_ENAB FAKE_SHELL FTMP_FILE HUSHLOGIN_FILE ISSUE_FILE KILLCHAR LASTLOG_ENAB LOGIN_RETRIES LOGIN_STRING LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB MAIL_DIR MAIL_FILE MOTD_FILE NOLOGINS_FILE PORTTIME_CHECKS_ENAB QUOTAS_ENAB TTYGROUP TTYPERM TTYTYPE_FILE ULIMIT UMASK USERGROUPS_ENAB

newgrp / sg
    SYSLOG_SG_ENAB

newusers
    ENCRYPT_METHOD GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK

passwd
    ENCRYPT_METHOD MD5_CRYPT_ENAB OBSCURE_CHECKS_ENAB PASS_ALWAYS_WARN PASS_CHANGE_TRIES PASS_MAX_LEN PASS_MIN_LEN SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

pwck
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

pwconv
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

su
    CONSOLE CONSOLE_GROUPS DEFAULT_HOME ENV_HZ ENVIRON_FILE ENV_PATH ENV_SUPATH ENV_TZ LOGIN_STRING MAIL_CHECK_ENAB MAIL_DIR MAIL_FILE QUOTAS_ENAB SULOG_FILE SU_NAME SU_WHEEL_ONLY SYSLOG_SU_ENAB USERGROUPS_ENAB

sulogin
    ENV_HZ ENV_TZ

useradd
    CREATE_HOME GID_MAX GID_MIN MAIL_DIR MAX_MEMBERS_PER_GROUP PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK

userdel
    MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP USERDEL_CMD USERGROUPS_ENAB

usermod
    MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP

VOIR AUSSI

login(1), passwd(1), su(1), passwd(5), shadow(5), pam(8).