LOGIN(1)

NOME
login - apre una sessione sul sistema

SINOSSI

login [-p] [-h macchina] [nome] [ENV=VAR...]

login [-p] [-h macchina] -f nome

login [-p] -r macchina

DESCRIZIONE

login viene utilizzato per aprire una sessione sul sistema. Normalmente viene invocato automaticamente rispondendo al prompt login: del terminale. login può essere trattato in maniera speciale dalla shell e non può essere invocato come sottoprocesso. Quando è richiamato dalla shell, login va invocato come exec login che termina la shell utente attuale (il che impedirà al nuovo utente che accede, di poter ritornare alla sessione del chiamante). Il tentativo di esecuzione di login da una shell che non sia quella di login produce un messaggio d'errore.

Se necessario viene quindi chiesta la password all'utente. Durante questa operazione l'eco sul terminale è disabilitata per non rivelare la password. Solo un basso numero di tentativi falliti è permesso prima che login termini e che la connessione sia interrotta.

Se la scadenza delle password è abilitata per il proprio account, prima di proseguire ci può essere la richiesta di una nuova password. Il programma chiederà prima la vecchia password e poi la nuova per poter continuare. Per maggiori informazioni si faccia riferimento a passwd(1).

Dopo aver completato correttamente l'accesso, vengono mostrati eventuali messaggi di sistema e si viene informati della presenza di nuova posta. Si può evitare di visualizzare i messaggi in /etc/motd creando un file vuoto chiamato .hushlogin nella propria directory di login. Il messaggio relativo alla presenza di posta è «C'è nuova posta.», «C'è posta.» o «Nessun messaggio di posta.» a seconda dello stato della propria casella di posta.

I propri ID di utente e gruppo vengono poi impostati in base ai valori definiti nel file /etc/passwd. I valori di $HOME, $SHELL, $PATH, $LOGNAME e $MAIL sono impostati in base ai campi appropriati nella voce della password. Anche i valori per ulimit, umask e nice possono essere impostati in base al campo GECOS.

In alcune installazioni la variabile d'ambiente $TERM può essere impostata in base al tipo di terminale della propria connessione, come specificato in /etc/ttytype.

Può anche essere eseguito uno script di inizializzazione per il proprio interprete dei comandi. Fare riferimento alla relativa sezione di manuale per maggiori informazioni su questa funzione.

Un sottosistema di login è indicato dalla presenza del carattere «*» all'inizio della shell di login. La directory home impostata sarà utilizzata come root di un nuovo file system al quale l'utente accede.

Il programma login NON è responsabile di rimuovere gli utenti dal file utmp. La correzione del proprietario di una sessione di terminale è responsabilità di getty(8) e init(8). Se si usa login senza exec dal prompt della shell, allora l'utente che si sta usando risulterà sempre connesso al sistema anche oltre il termine della «sottosessione».

OPZIONI

-f
    Non effettua l'autenticazione, l'utente è già autenticato

    Nota: in questo caso username è obbligatorio.

-h
    Nome dell'host remoto per questo login.

-p
    Non modifica l'ambiente.

-r
    Attiva il protocollo autologin di rlogin.

Le opzioni -r, -h e -f possono essere utilizzate solo quando login viene invocato da root.

AVVISI/CAVEAT

Questa versione di login ha molte opzioni di compilazione; in un determinato sistema potrebbe esserne in uso solo una parte.

La posizione dei file è soggetta a differenze in base alla configurazione del sistema.

Il programma login NON è responsabile di rimuovere gli utenti dal file utmp. La correzione del proprietario di una sessione di terminale è responsabilità di getty(8) e init(8). Se si usa login senza exec dal prompt della shell, allora l'utente che si sta usando risulterà sempre connesso al sistema anche oltre il termine della «sottosessione».

Come per ogni programma, l'aspetto di login può essere simulata. Se utenti non fidati hanno accesso fisico alla macchina, essi potrebbero sfruttare questa cosa per ottenere la password della prossima persona che si siede davanti al terminale. In Linux si può utilizzare il meccanismo SAK per iniziare un percorso sicuro che previene questo tipo di attacchi.

CONFIGURAZIONE

Le seguenti variabili di configurazione in /etc/login.defs cambiano il comportamento di questo strumento:

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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.

FILE

/var/run/utmp
    Elenco delle sessioni attive.

/var/log/wtmp
    Elenco delle precedenti sessioni di login.

/etc/passwd
    Informazioni sugli account utente.

/etc/shadow
    Informazioni sicure sugli account utente.

/etc/motd
    File di sistema con il messaggio del giorno.

/etc/nologin
    Impedisce l'accesso al sistema per utenti diversi da root.

/etc/ttytype
    Elenco di tipi di terminale.

$HOME/.hushlogin
    Impedisce che vengano mostrati i messaggi di sistema.

/etc/login.defs
    Configurazione del pacchetto password shadow

VEDERE ANCHE

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