LOGIN.DEFS(5)

NOME
login.defs - configurazione del pacchetto password shadow

DESCRIZIONE

Il file /etc/login.defs contiene la configurazione specifica per questo sistema relativa al pacchetto password shadow. Questo file è obbligatorio. La sua assenza non bloccerà l'utilizzo del sistema, ma probabilmente sarà causa di risultati non desiderati.

Questo file è un file di testo leggibile nel quale ogni riga descrive un parametro di configurazione. Le righe consistono di una coppia nome valore separati da spazi. Le righe vuote e di commento sono ignorate. I commenti iniziano con con il simbolo "#" che deve essere il primo carattere diverso da spazio della riga.

I valori dei parametri possono essere di quattro tipi: testo, booleano, numerico e numerico lungo. Un testo può contenere qualsiasi carattere stampabile. Un booleano dovrebbe essere uno tra yes e no. Un parametro dal valore booleano non definito oppure uno che ha un valore diverso da quelli permessi verrà equiparato al valore no. I numerici (sia normali che lunghi) possono essere decimali, ottali (preceduti da 0) o esadecimali (preceduti da 0x). Il valore massimo dei numerici normali e lunghi è dipendente dalla macchina.

Sono forniti i seguenti parametri di configurazione:

CHFN_RESTRICT (testo)
    Questo parametro specifica quali valori del campo gecos del file /etc/passwd possono essere cambiati da utenti normali usando il programma chfn. Può essere una combinazione qualsiasi delle lettere f, r, w, h per «Nome completo (f)», «Numero stanza (r)», «Telefono di lavoro (w)» e «Telefono di casa (h)». Per compatibilità con precedenti versioni, yes è quivalente a rwh e no è equivalente a frwh. Se non specificato, solo il super utente può effettuare modifiche. Le impostazioni più stringenti si ottengono installando chfn non SUID.

CONSOLE_GROUPS (testo)
    Elenco di gruppi da aggiungere ai gruppi supplementari dell'utente quando questi accede dalla console (come determinato dalla impostazione CONSOLE). Il valore predefinito è nullo. Usare con cautela - è possibile che gli utenti ottengano l'accesso permanente a questi gruppi anche se non accedono dalla console.

CREATE_HOME (booleano)
    Indica se per i nuovi utenti va creata la directory home.

    Questa impostazione non viene applicata agli utenti di sistema e può essere modificata sulla riga di comando.

DEFAULT_HOME (booleano)
    Indica se permettere l'accesso al sistema anche se non si può accedere alla directory home. Il valore predefinito è no.

    Se impostato a yes, l'utente accederà alla directory root (/) nel caso che non sia possibile accedere alla propria directory home.

ENCRYPT_METHOD (testo)
    Definisce l'algoritmo di cifratura predefinito per le password (se non ne viene specificato uno a riga di comando).

    Può avere uno dei seguenti valori: DES (predefinito), MD5, SHA256, SHA512.

    Nota: questo parametro ha la precedenza sulla variabile MD5_CRYPT_ENAB.

    Nota: questo ha effetto solo sulla generazione delle password di gruppo. La generazione delle password utente avviene tramite PAM ed è soggetta alla configurazione PAM. È raccomandato di impostare questa variabile in maniera consistente con la configurazione PAM.

ENV_HZ (testo)
    Se impostato viene utilizzato per definire il valore della variabile d'ambiente HZ al login dell'utente. Il valore deve essere preceduto da HZ=. Un valore comune per Linux è HZ=100.

    La variabile d'ambiente HZ viene impostata solo quando l'utente (il super utente) accede con sulogin.

ENV_PATH (testo)
    If set, it will be used to define the PATH environment variable when a regular user login. The value is a colon separated list of paths (for example /bin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/bin:/usr/bin.

ENV_SUPATH (testo)
    If set, it will be used to define the PATH environment variable when the superuser login. The value is a colon separated list of paths (for example /sbin:/bin:/usr/sbin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/sbin:/bin:/usr/sbin:/usr/bin.

ERASECHAR (numerico)
    Carattere ERASE del terminale (010 = backspace, 0177 = Canc).

    Il valore deve avere il prefisso «0» se in ottale, o «0x» se esadecimale.

FAIL_DELAY (numerico)
    Numero di secondi prima che venga concesso un ulteriore tentativo dopo un accesso fallito.

FAKE_SHELL (testo)
    Se impostato, login eseguirà questa shell al posto di quella utente specificata in /etc/passwd.

GID_MAX (numerico), GID_MIN (numerico)
    Intervallo di ID di gruppo per la creazione di gruppi normali tramite useradd, groupadd o newusers.

    Il valore predefinito per GID_MIN (rispettivamente GID_MAX) è 1000 (rispettivmente 60000).

HUSHLOGIN_FILE (testo)
    Se definito, questo file inibisce quanto stampato durante l'accesso. Se viene specificato un percorso completo, la modalità silenziosa (hushed) viene attivata se in quel file è presente il nome dell'utente o della shell dell'utente. Se il percorso non è completo, allora la modalità silenziosa viene attivata se quel file è presente nella directory home dell'utente.

KILLCHAR (numerico)
    Il carattere da usare sul terminale per cancellare l'intera riga (025 = CTRL-U)

    Il valore deve avere il prefisso «0» se in ottale, o «0x» se esadecimale.

LOG_OK_LOGINS (booleano)
    Abilita la tracciatura degli accessi avvenuti con successo.

LOG_UNKFAIL_ENAB (booleano)
    Abilita l'inclusione dei nomi utente sconosciuti quando si registrano gli accessi falliti.

    Nota: memorizzare i nomi sconosciuti potrebbe diventare un problema legato alla sicurezza se un utente inserisce la propria password al posto del nome utente.

LOGIN_RETRIES (numerico)
    Massimo numero di tentativi di accesso per password errata.

    Questa impostazione verrà probabilmente superata da quella di PAM poiché il modulo predefinito pam_unix ha una sua gestione con 3 tentativi. In ogni caso questa è una impostazione di sicurezza nel caso in cui si utilizzi un modulo PAM che ignora PAM_MAXTRIES.

LOGIN_TIMEOUT (numerico)
    Numero massimo di secondi per l'accesso.

MAIL_DIR (testo)
    La directory di spool per la posta. Questa è necessaria per manipolare la casella di posta quando il corrispondente account utente viene modificato o cancellato. Se non è specificata viene utilizzato un valore impostato al momento della compilazione.

MAIL_FILE (testo)
    Imposta la posizione delle caselle di posta degli utenti relative alla loro directory home.

Le variabili MAIL_DIR e MAIL_FILE vengono utilizzate da useradd, usermod e userdel per creare, spostare e cancellare le caselle di posta dell'utente.

MAX_MEMBERS_PER_GROUP (numero)
    Numero massimo di membri per gruppo. Quando viene raggiunto il massimo, viene creata una nuova riga per il gruppo nel file /etc/group (con lo stesso nome, stessa password e stesso GID).

    Il valore predefinito è 0, che non pone nessun limite al numero di membri per gruppo.

    Questa opzione (dividi gruppo) permette di limitare la lunghezza delle righe nel file «group». Questo è utile per essere certi che le righe per gruppi NIS non eccedano i 1024 caratteri.

    Se si deve impostare questo limite, si può usare 25.

    Nota: la divisione dei gruppi potrebbe non essere supportata da ogni strumento (anche all'interno del pacchetto Shadow). Non si dovrebbe utilizzare questa variabile a meno di esserci forzati.

MD5_CRYPT_ENAB (booleano)
    Indica se le password vanno cifrate usando l'algoritmo basato su MD5. Se impostato a yes le nuove password saranno cifrate usando un algoritmo basato su MD5 e compatibile con quello delle versioni più recenti di FreeBSD. Supporta password di lunghezza qualsiasi e testi «salt» più lunghi. Impostare a no se si devono copiare password su altri sistemi che non gestiscono l'algoritmo. Il valore predefinito è no.

    Questa variabile ha meno priorità della variabile ENCRYPT_METHOD e di qualsiasi opzione a riga di comando che imposta un algoritmo di cifratura.

    Questa variabile non è più usata. Si dovrebbe utilizzare ENCRYPT_METHOD.

    Nota: questo ha effetto solo sulla generazione delle password di gruppo. La generazione delle password utente avviene tramite PAM ed è soggetta alla configurazione PAM. È raccomandato di impostare questa variabile in maniera consistente con la configurazione PAM.

PASS_MAX_DAYS (numerico)
    Il numero massimo di giorni che una password può essere utilizzata. Se la password è più vecchia verrà imposto il suo cambiamento. Se non specificato viene assunto -1 (che disabilita questo controllo).

PASS_MIN_DAYS (numerico)
    Il numero minimo di giorni tra due cambiamenti di password. Ogni tentativo di cambiare la password prima di questo periodo verrà rifiutato. Se non specificato viene assunto -1 (che disabilita questo controllo).

PASS_WARN_AGE (numerico)
    Il numero di giorni per i quali un utente va avvisato che la sua password sta per scadere. Se zero l'utente viene avvisato solo alla scadenza. Un valore negativo indica che non si deve avvisare mai. Se non specificato allora non c'è nessun avviso.

PASS_MAX_DAYS, PASS_MIN_DAYS e PASS_WARN_AGE sono utilizzate solo al momento della creazione dell'account. Qualsiasi cambiamento di queste impostazioni non modifica gli account preesistenti.

SHA_CRYPT_MIN_ROUNDS (numerico), SHA_CRYPT_MAX_ROUNDS (numerico)
    Quando ENCRYPT_METHOD vale SHA256 o SHA512, questo definisce il numero di cicli SHA usati per l'algoritmo di cifratura (quando il numero di cicli non è impostato a riga di comando).

    Con molti cicli è più difficile trovare una password usando la forza bruta. Ma va notato che è richiesta maggiore potenza di calcolo per autenticare gli utenti.

    Se non specificato sarà la libc a scegliere il numero di cicli (5000).

    Il valore deve essere compreso tra 1.000 e 999.999.999.

    Se viene impostato solo uno tra SHA_CRYPT_MIN_ROUNDS e SHA_CRYPT_MAX_ROUNDS, allora l'unico valore viene utilizzato.

    Se SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS, allora viene utilizzato il maggiore.

    Nota: questo ha effetto solo sulla generazione delle password di gruppo. La generazione delle password utente avviene tramite PAM ed è soggetta alla configurazione PAM. È raccomandato di impostare questa variabile in maniera consistente con la configurazione PAM.

SULOG_FILE (testo)
    Se definito, tutta l'attività di «su» viene tracciata in questo file.

SU_NAME (testo)
    Se definito è il nome del comando da mostrare quando si esegue «su -». Ad esempio, se lo di definisce come «su» allora «ps» mostrerà che il comando è «-su». Se non definito, «ps» mostrerà il nome della shell invocata, come «-sh».

SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)
    If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate group IDs) allocate SUB_GID_COUNT unused group IDs from the range SUB_GID_MIN to SUB_GID_MAX for each new user.

    The default values for SUB_GID_MIN, SUB_GID_MAX, SUB_GID_COUNT are respectively 100000, 600100000 and 10000.

SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)
    If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate user IDs) allocate SUB_UID_COUNT unused user IDs from the range SUB_UID_MIN to SUB_UID_MAX for each new user.

    The default values for SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNT are respectively 100000, 600100000 and 10000.

SYS_GID_MAX (numerico), SYS_GID_MIN (numerico)
    Intervallo di ID di gruppo utilizzato per la creazione di un gruppo di sistema da useradd, groupadd o newusers.

    Il valore predefinito per SYS_GID_MIN (rispettivamente SYS_GID_MAX) è 101 (rispettivamente GID_MIN-1).

SYS_UID_MAX (numerico), SYS_UID_MIN (numerico)
    Intervallo di ID utente per la creazione degli utenti di sistema con useradd o newusers.

    Il valore predefinito per SYS_UID_MIN (rispettivamente SYS_UID_MAX) è 101 (rispettivamente UID_MIN-1).

SYSLOG_SG_ENAB (booleano)
    Abilita il tracciamento dell'attività di sg su «syslog».

SYSLOG_SU_ENAB (booleano)
    Abilita la tracciatura su «syslog» dell'attività di su, oltre a quella sul file «sulog».

TTYGROUP (testo), TTYPERM (testo)
    I permessi del terminale: il tty usato per l'accesso sarà di proprietà del gruppo TTYGROUP e avrà permessi impostati a TTYPERM.

    In maniera predefinita la proprietà del terminale sarà impostata al gruppo primario dell'utente, mentre i permessi saranno 0600.

    TTYGROUP può essere il nome del gruppo o il suo identificativo numerico.

    Se si ha il comando write che è «setgid» e ha un gruppo speciale che possiede i terminali, definire TTYGROUP con lo stesso gruppo e TTYPERM a 0620. Altrimenti lasciare TTYGROUP commentato e assegnare TTYPERM a 622 o 600.

TTYTYPE_FILE (testo)
    Se definito si tratta di un file che mappa le linee tty nella variabile d'ambiente TERM. Ogni riga del file è in un formato tipo «vt100 tty01».

UID_MAX (numerico), UID_MIN (numerico)
    Intervallo di ID utente da utilizzare nella creazione degli utenti normali tramite useradd o newusers.

    Il valore predefinito per UID_MIN (rispettivamente UID_MAX) è 1000 (rispettivamente 60000).

UMASK (numerico)
    La maschera di permessi alla creazione dei file è inizializzata con questo valore. Se non specificato la maschera viene impostata a 022.

    useradd e newusers usano questa maschera per impostare i permessi della directory home che creano.

    Viene anche utilizzato da pam_umask come valore umask predefinito.

USERDEL_CMD (testo)
    Se definito, questo comando viene eseguito quando si cancella un utente. Dovrebbe rimuovere tutti i compiti di stampa/cron/at di proprietà dell'utente da cancellare (passato come primo argomento).

    Il codice d'uscita restituito dallo script non è preso in considerazione.

    Ecco uno script di esempio che rimuove i job dell'utente, sia di cron che at che di stampa:

        #! /bin/sh
        # Verifica la presenza dell'argomento obbligatorio
        if [ $# != 1 ]; then
           echo "Uso: $0 username"
           exit 1
        fi
        # Rimuove i compiti di cron
        crontab -r -u $1
        # Rimuove i compiti di at
        # Nota che verranno rimossi tutti i compiti di proprietà dello stesso UID,
        # anche se condiviso con un altro nome utente.
        AT_SPOOL_DIR=/var/spool/cron/atjobs
        find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;
        # Rimuove le stampe
        lprm $1
        # Finito.
        exit 0

USERGROUPS_ENAB (booleano)
    Se impostato a yes, userdel cancellerà il gruppo dell'utente se non contiene altri membri, e useradd creerà automaticamente un gruppo con lo stesso nome dell'utente.

RIFERIMENTI INCROCIATI

I seguenti riferimenti incrociati mostrano quali programmi del pacchetto shadow password utilizzano quali parametri.

chfn
    CHFN_RESTRICT

chgpasswd
    ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

chpasswd
    SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

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_GROUPS DEFAULT_HOME ERASECHAR FAIL_DELAY FAKE_SHELL HUSHLOGIN_FILE KILLCHAR LOGIN_RETRIES LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB TTYGROUP TTYPERM TTYTYPE_FILE 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 SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN SUB_UID_COUNT SUB_UID_MAX SUB_UID_MIN SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK

pwck
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

pwconv
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

su
    CONSOLE_GROUPS DEFAULT_HOME ENV_PATH ENV_SUPATH SULOG_FILE SU_NAME SYSLOG_SU_ENAB

sulogin
    ENV_HZ

useradd
    CREATE_HOME GID_MAX GID_MIN MAIL_DIR MAX_MEMBERS_PER_GROUP PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN SUB_UID_COUNT SUB_UID_MAX SUB_UID_MIN 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

ERRORI

Molte delle funzionalità che erano fornite dal pacchetto password shadow sono adesso gestite da PAM. Quindi /etc/login.defs non è più utilizzato da passwd(1), e meno usato da login(1) e su(1). Vedere la corrispondente configurazione di PAM.

VEDERE ANCHE

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