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

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

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.

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.

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.

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

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.

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