LOGIN(1)

NOME
login - accesso al sistema (sign on)

SINTASSI
login [ nome ]
login -p
login -h nome_host
login -f nome

DESCRIZIONE
login è usato quando si entra nel sistema. Può essere usato anche per passare in qualsiasi momento da un utente ad un altro (molte delle shell moderne hanno, comunque, il supporto per questa possibilità precompilato al loro interno). Se non è dato nessun argomento, login chiede il nome di un utente. Se l'utente non è root, e se esiste /etc/nologin, il contenuto di questo file è stampato sullo schermo, ed è terminato il login. Ciò è usato tipicamente per prevenire il login quando il sistema sta per essere spento. Se restrizioni speciali sull'accesso sono specificate per l'utente in /etc/usertty, queste devono essere soddisfatte, o il login in corso sarà negato e sarà generato un messaggio di syslog. Si veda la sezione sulle "Restrizioni Speciali sull'Accesso". Se l'utente è root, allora il login deve avvenire in una delle tty elencate in /etc/securetty. I fallimenti saranno riportati dai servizi di syslog. Dopo che queste condizioni sono state verificate, sarà richiesta e verificata la password (se serve una password per questo utente). Sono permesse dieci possibilità prima che login muoia, ma dopo le prime tre, la risposta inizia a diventare molto lenta. I login falliti saranno riportati dai servizi di syslog. Questi servizi sono usati anche per riportare qualsiasi login di root che abbia avuto successo. Se esiste il file .hushlogin, allora è effettuato un login "quiet" (disabilitando la verifica della mail, la stampa della data dell'ultimo login e il messaggio del giorno). Altrimenti, se esiste /var/log/lastlog, è stampata la data (e l'ora) dell'ultimo login (ed è registrato il login corrente). Sono effettuate le varie formalità amministrative, come l'impostazione dello UID e del GID della tty. La variabile d'ambiente TERM è preservata, se esiste (le altre variabili d'ambiente sono preservate se è usata l'opzione -p). Sono poi impostate le variabili d'ambiente HOME, PATH, SHELL, TERM, MAIL, e LOGNAME. Il PATH è impostato di default a /usr/local/bin:/bin:/usr/bin:. per gli utenti normali, e a /sbin:/bin:/usr/sbin:/usr/bin per root. Alla fine, se questo non è un login "quiet", è stampato il messaggio del giorno ed è controllato il file con il nome dell'utente in /usr/spool/mail, e viene stampato un messaggio se questi non ha lunghezza zero. Viene poi lanciata la shell dell'utente. Se non è specificata nessuna shell per l'utente in /etc/passwd, allora è usata /bin/sh. Se non c'è nessuna directory specificata in /etc/passwd, allora è usata / (la home directory è controllata per la presenza del file .hushlogin descritto sopra).

OPZIONI

-p  Usata da getty(8) per dire a login di non distruggere l'ambiente.

-f  Usata per evitare una seconda autentificazione del login. In particolare questa non funziona per root, e non sembra funzionare bene sotto Linux.

-h  Usata da altri server (p.es., telnetd(8)) per passare il nome dell'host remoto a login in modo tale che possa essere piazzato in utmp e wtmp. Solo il superuser può usare questa opzione.

RESTRIZIONI SPECIALI SULL'ACCESSO
Il file /etc/securetty elenca il nome delle tty dove root ha il permesso di loggarsi. Un nome del device tty senza il prefisso /dev/ deve essere specificato su ciascuna riga. Se il file non esiste, root può loggarsi su qualsiasi tty.

Il file /etc/usertty specifica restrizioni sull'accesso aggiuntive per gli utenti specifici. Se questo file non esiste, non è imposta nessuna restrizione addizionale. Il file consiste di una sequenza di sezioni. Ci sono tre tipi possibili di sezioni: CLASSES, GROUPS e USERS. Una sezione CLASSES definisce le classi di modelli di tty e di nomi degli host, una sezione GROUPS definisce le tty e gli host permessi in base al gruppo, e una sezione USERS definisce le tty e gli host permessi in base all'utente.

Ogni riga in questo file non può essere più lunga di 255 caratteri. I commenti iniziano con # e si estendono fino alla fine della riga.

  La Sezione CLASSES
Una sezione CLASSES inizia con la parola (tutta in caratteri maiuscoli) CLASSES all'inizio di una riga. Ogni riga seguente fino all'inizio di una nuova sezione o fine del file consiste di una sequenza di parole separate da caratteri di tabulazione (tab) o spazi. Ogni riga definisce una classe di modello di tty e di host.

La parola all'inizio della riga diventa il nome collettivo per i modelli di tty e di host specificati nel resto della riga. Questo nome collettivo può essere usato in qualsiasi delle sezioni GROUPS e USERS seguenti. Nessun nome di classe deve comparire come parte della definizione di una classe in modo da evitare problemi con le classi ricorsive.

Un esempio di sezione CLASSES:

CLASSES
myclass1		tty1 tty2
myclass2		tty3 @.foo.com

Definisce le classi myclass1 e myclass2 corrispondenti a quello che hanno a destra.

  La Sezione GROUPS
Una sezione GROUPS definisce le tty e gli host permessi a seconda del gruppo Unix. Se un utente è membro di un gruppo Unix in accordo a quanto specificato in /etc/passwd e /etc/group e tale gruppo è menzionato in una sezione GROUPS in /etc/usertty allora l'utente ha il permesso di accesso se lo ha il gruppo.

Una sezione GROUPS inizia con la parola (tutta in caratteri maiuscoli) GROUPS all'inizio di una riga, ed ogni riga seguente è una sequenza di parole separate da spazi o tab. La prima parola nella riga è il nome del gruppo e il resto delle parole nella riga specificano le tty e gli host dove i membri dei quel gruppo hanno il permesso di accesso. Queste definizioni possono comprendere l'uso delle classi definite nelle sezioni CLASSES precedenti.

Un esempio di sezione GROUPS:

GROUPS
sys		tty1 @.bar.edu
stud		myclass1 tty4

Questo esempio specifica che i membri del gruppo sys possono loggarsi sulla tty1 e dagli host del dominio bar.edu. Gli utenti nel gruppo stud possono loggarsi dagli host/tty specificati nella classe myclass1 o dalla tty4.

  La Sezione USERS
Una sezione USERS inizia con la parola tutta in maiuscole USERS all'inizio di una riga, e ogni riga seguente è una sequenza di parole separate da spazi o tab. La prima parola in una riga è un nome di un utente e quell'utente ha il permesso di loggarsi sulle tty e dagli host menzionati nel resto della riga. Queste specificazione possono coinvolgere classi definite nelle sezioni CLASSES precedenti. Se non è specificato nessun header di sezione in cima al file, la prima sezione è di default una sezione USERS.

Un esempio di sezione USERS:

USERS
zacho		tty1 @130.225.16.0/255.255.255.0
blue			tty3 myclass2

Questa lascia all'utente zacho di loggarsi solo sulla tty1 e da host con indirizzo IP nel range 130.225.16.0 - 130.225.16.255, e l'utente blue ha il permesso di loggarsi dalla tty3 e da qualsiasi cosa sia specificato nella classe myclass2.

Ci può essere una riga nella sezione USERS che inizia con il nome utente *. Questa è la regola di default e sarà applicata a qualsiasi utente che non corrisponde a nessun'altra riga.

Se sia una riga USERS che una riga GROUPS corrispondono ad un utente allora l'utente ha il permesso di accesso dall'unione di tutti gli host/tty menzionati in quelle definizioni.

  Origini
Le definizioni dei modelli per le tty e gli host usate nella specifica delle classi, e degli accessi gruppo e utente sono chiamate origini (origins). Una stringa origine può avere uno di questi formati:

o   Il nome di un device tty senza il prefisso /dev/, per esempio tty1 o ttyS0.

o   La stringa @localhost, che indica che l'utente ha il permesso di fare telnet/rlogin dall'host locale sull'host stesso. Ciò permette, per esempio, all'utente di lanciare il comando: xterm -e /bin/login.

o   Il suffisso del nome del dominio come @.some.dom, che indica che l'utente può fare rlogin/telnet da qualsiasi host il cui dominio abbia il suffisso .some.dom.

o   Un range di indirizzi IPv4, scritti @x.x.x.x/y.y.y.y dove x.x.x.x è un indirizzo IP nella solita notazione in 4 decimali separati da punti (dotted quad decimal notation), e y.y.y.y è una maschera di bit nella stessa notazione che indica quali bit nell'indirizzo vanno confrontati con indirizzo IP dell'host remoto. Per esempio @130.225.16.0/255.255.254.0 significa che l'utente può fare telnet/rlogin da qualsiasi host il cui indirizzo IO sia nel range 130.225.16.0 - 130.225.17.255.

Ognuna delle suddette origini può essere preceduta da una specificazione temporale in accordo con la sintassi:

spec_ora     ::= '[' <giorno-o-ora> [':' <giorno-o-ora>]* ']'
giorno       ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
ora          ::= '0' | '1' | ... | '23'
spec_ora     ::= <ora> | <ora> '-' <ora>
giorno-o-ora ::= <giorno> | <spec_ora>

Per esempio, l'origine [mon:tue:wed:thu:fri:8-17]tty3 significa che il login sul tty3 è permesso dal lunedì al venerdì dalle 8:00 alle 17:59 (5:59 pm). Ciò mostra anche che un range di ore del tipo a-b include tutti gli istanti tra a:00 e b:59. La specificazione di una sola ora (come 10) indica un intervallo di tempo tra le 10:00 e le 10:59.

Non specificando alcun prefisso temporale per un tty o un host si indica che il login da quell'origine è ammesso in qualsiasi momento. Se si da un prefisso temporale ci si assicuri di specificare sia un insieme di giorni che uno o più intervalli di ore. Una specificazione temporale non può includere spazi bianchi.

Se non è data nessuna regola di default allora gli utenti non corrispondenti ad alcuna riga di /etc/usertty hanno il permesso si loggarsi da qualsiasi posto come nel comportamento standard.

FILE
/var/run/utmp
/var/log/wtmp
/var/log/lastlog
/usr/spool/mail/*
/etc/motd
/etc/passwd
/etc/nologin
/etc/usertty
.hushlogin

VEDERE ANCHE
init(8), getty(8), mail(1), passwd(1), passwd(5), environ(7), shutdown(8)

BACHI
Linux, diversamente dagli altri sistemi operativi draconiani, non controlla la quota. Non è supportata l'opzione non documentata -r del BSD. Questa potrebbe essere richiesta da qualche programma rlogind(8).

AUTORE
Derivato dal BSD login 5.40 (5/9/89) da Michael Glad (glad@daimi.dk) per HP-UX
Portato su Linux 0.12 da Peter Orbaek (poe@daimi.aau.dk)