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_AUTH (booleano)
    Se yes, il programma chfn richiederà l'autenticazione prima di apportare qualsiasi modifica, a meno che non sia eseguito dal super utente.

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.

CHSH_AUTH (booleano)
    Se yes, il comando chsh richiederà l'autenticazione prima di apportare qualsiasi modifica, a meno che sia utilizzato dal super utente.

CONSOLE (testo)
    Se definito, o il percorso completo di un file che contiene l'elenco di nomi di device (uno per riga) oppure un elenco di nomi di device separati da «:». L'accesso come root verrà permesso solo attraverso questi device.

    Se non definito, root potrà accedere da qualsiasi device.

    Il nome di device deve essere specificato senza il prefisso /dev.

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.

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.

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.

ENV_TZ (testo)
    Se impostato viene usato per definire la variabile d'ambiente TZ al login dell'utente. Il valore può essere il nome di una «timezone» preceduta da TZ= (ad esempio TZ=CST6CDT), o il percorso completo di un file che contenga la specifica della «timezone» (ad esempio /etc/tzname).

    Se viene specificato il percorso completo di un file che però non esiste o non può essere letto, allora viene utilizzato il valore predefinito TZ=CST6CDT.

ENVIRON_FILE (testo)
    Se questo file esiste ed è leggibile, l'ambiente di login viene letto da lì. Ogni riga deve essere nella forma nome=valore.

    Le righe che iniziano con «#» sono trattate come commenti e ignorate.

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.

FAILLOG_ENAB (booleano)
    Abilita la memorizzazione e mostra le informazioni sugli accessi falliti contenute in /var/log/faillog.

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

FTMP_FILE (testo)
    Se impostato, gli accessi falliti verranno tracciati in questo file nel formato utmp.

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.

ISSUE_FILE (testo)
    Se definito, il file verrà mostrato prima del prompt di login.

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.

LASTLOG_ENAB (booleano)
    Abilita la memorizzazione e la stampa delle informazioni sulle date degli ultimi accessi in /var/log/lastlog.

LASTLOG_UID_MAX (number)
    Highest user ID number for which the lastlog entries should be updated. As higher user IDs are usually tracked by remote user identity and authentication services there is no need to create a huge sparse lastlog file for them.

    No LASTLOG_UID_MAX option present in the configuration means that there is no user ID limit for writing lastlog entries.

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.

LOGIN_STRING (testo)
    Il testo da utilizzare per richiedere la password. Il valore predefinito è «Password: » o una sua traduzione. Se si imposta questa variabile allora il testo non verrà tradotto.

    Se il testo contiene %s, questo verrà sostituito dal nome dell'utente.

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

MAIL_CHECK_ENAB (testo)
    Abilita la verifica e stampa a video dello stato della casella di posta al momento dell'accesso al sistema.

    Andrebbe disabilitato se i file di avvio della shell effettuano già questo controllo («mailx -e» o equivalente).

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.

Se MAIL_CHECK_ENAB è impostata a yes allora sono anche utilizzate per impostare la variabile d'ambiente MAIL.

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.

MOTD_FILE (testo)
    Se definito è una lista di nomi di file con «messaggi del giorno» separati da «:» che vengono mostrati subito dopo l'accesso.

NOLOGINS_FILE (testo)
    Se definito è il nome di un file che impedisce l'accesso degli utenti non root. Il suo contenuto dovrebbe essere un messaggio che indica il motivo per il quale l'accesso è impedito.

OBSCURE_CHECKS_ENAB (booleano)
    Abilita controlli addizionali durante il cambio password.

PASS_ALWAYS_WARN (booleano)
    Avvisa riguardo password deboli (anche se le permette egualmente) se si è root.

PASS_CHANGE_TRIES (numerico)
    Massimo numero di tentativi per cambiare una password (troppo facile).

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.

PASS_MAX_LEN (numerico), PASS_MIN_LEN (numerico)
    Numero di caratteri significativi della password per crypt(). PASS_MAX_LEN è normalmente 8. Da non cambiare a meno che la propria crypt() sia migliore. Questo viene ignorato se MD5_CRYPT_ENAB è impostata a yes.

PORTTIME_CHECKS_ENAB (booleano)
    Abilita la verifica delle restrizioni temporali specificate in /etc/porttime.

QUOTAS_ENAB (booleano)
    Abilita l'impostazione di limiti di risorsa definiti in /etc/limits e ulimit, umask e livello di «nice» in base al campo gecos del passwd dell'utente.

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.

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

SU_WHEEL_ONLY (booleano)
    Se yes, l'utente deve essere elencato come membro del primo gruppo con gid 0 in /etc/group (chiamato root in molti sistemi Linux) perché sia possibile usare su verso account con uid 0. Se il gruppo non esiste o è vuoto, nessuno potrà utilizzare su verso uid 0.

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

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

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

ULIMIT (numerico)
    Valore ulimit predefinito.

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 utilizzata da login per definire la maschera iniziale dell'utente. Notare che questa maschera può essere modificata dalla riga GECOS dell'utente (se QUOTAS_ENAB è impostato) o specificando un limite con l'identificativo K in limits(5).

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)
    Abilita l'impostazione dei bit di gruppo di umask in modo che siano gli stessi dei bit del proprietario (esempio: 022 -> 002, 077 -> 007) per utenti non root a condizione che uid e gid siano identici e che il nome utente sia lo stesso del gruppo primario.

    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_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

lastlog
    LASTLOG_UID_MAX

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 LASTLOG_UID_MAX 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 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

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 LASTLOG_UID_MAX 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
    LASTLOG_UID_MAX MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP

VEDERE ANCHE

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