LOGIN(1)

NOME
login - accede al sistema

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

DESCRIZIONE
login viene utilizzato quando si accede a un sistema. Può anche venire usato per passare da un utente a un altro in qualunque momento (le shell più recenti tuttavia hanno un supporto incorporato per questa caratteristica). Se non sono forniti argomenti, login chiede il nome dell'utente. Se l'utente non é root, e se esiste /etc/nologin, vengono stampati sullo schermo i contenuti di questo file e viene terminata l'operazione. Ciò viene usato, tipicamente, per impedire collegamenti quando il sistema sta per essere spento. Se per l'utente sono specificate particolari restrizioni di accesso in /etc/usertty, esse devono venire rispettate, altrimenti il tentativo di collegamento riceverà un diniego e verrà generato un messaggio di syslog. Si veda la sezione sulle "Restrizioni Speciali sull'Accesso". Se l'utente è root, allora il collegamento deve avvenire da una tty elencata in /etc/securetty. I fallimenti saranno registrati dai servizi di syslog. Dopo la verifica di queste condizioni, verrà richiesta e controllata la password (se è necessaria per quell'utente). Sono consentiti dieci tentativi prima che login termini, tuttavia dopo i primi tre, la risposta comincerà a diventare molto lenta. I collegamenti falliti vengono riferiti dai servizi di syslog. Questi servizi sono inoltre usati per riferire qualsiasi collegamento riuscito di root. Se esiste il file .hushlogin, allora verrà eseguito un collegamento "silenzioso" (disabilitando il controllo della posta, la stampa dell'orario dell'ultimo collegamento e del messaggio del giorno). Altrimenti, se esiste /var/log/lastlog, viene stampata la data e ora dell'ultimo collegamento (e viene registrato il collegamento in atto).

Sono eseguiti compiti amministrativi vari, come impostare lo UID e il GID della tty. Viene conservata la variabile d'ambiente TERM, se esiste (le altre variabili d'ambiente vengono conservate se si usa l'opzione -p). Quindi vengono impostate le variabili d'ambiente HOME, PATH, SHELL, TERM, MAIL e LOGNAME. PATH viene predefinito come /usr/local/bin:/bin:/usr/bin:. per gli utenti normali e come /sbin:/bin:/usr/sbin:/usr/bin per root. Infine, se non si tratta di un collegamento "silenzioso", viene stampato il messaggio del giorno, viene controllato il file col nome dell'utente in /usr/spool/mail, e stampato un messaggio se esso ha lunghezza non-zero. Viene poi lanciata la shell dell'utente. Se non è specificata nessuna shell per l'utente in /etc/passwd, allora viene usata /bin/sh. Se non sono specificate directory in /etc/passwd, allora viene usata / (la directory home viene controllata dal file .hushlogin descritto sopra).

OPZIONI

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

-f  Usata per saltare la seconda autentifica di collegamento. Ciò, specificamente, non funziona per root, e non sembra funzionare bene sotto Linux.

-h  Usata da altri server (per esempio, telnetd(8)) per passare il nome dell'host remoto a login onde poterlo collocare in utmp e wtmp. Solo il superutente può usare quest'opzione.

RESTRIZIONI SPECIALI SULL'ACCESSO
Il file /etc/securetty elenca il nome delle tty sulle quali può collegarsi root. Su ogni linea deve essere specificato un nome di dispositivo tty senza il prefisso /dev/. Se il file non esiste, a root è permesso di collegarsi da qualunque tty.

Il file /etc/usertty specifica restrizioni di accesso ulteriori per specifici utenti. Se questo file non esiste, non viene imposta alcuna ulteriore restrizione d'accesso. Il file consiste di una sequenza di sezioni. Ci sono tre possibili tipi di sezione: CLASSES, GROUPS e USERS. Una sezione CLASSES definisce la classe di tty consentiti e i modelli di hostname, una sezione GROUPS definisce tty e host consentiti in base al gruppo, una sezione USERS definisce tty e host consentiti in base all'utente.

Ogni riga di questo file può avere una lunghezza massima di 255 caratteri. I commenti iniziano con un carattere # e si estendono fino al termine della riga.

  La sezione CLASSES
Una sezione CLASSES incomincia con la parola CLASSES, all'inizio della riga e tutta in maiuscole. Ognuna delle righe che seguono, fino all'inizio di una nuova sezione o alla fine del file, consistono in una sequenza di parole separate da tabulazioni o spazi. Ogni riga definisce una classe di tty e modelli di host.

La parola all'inizio di una riga viene definita come un nome collettivo per le tty e i modelli di host specificati nel resto della riga. Questo nome collettivo può essere usato in ogni sezione successiva GROUPS o USERS. Nessuno di tali nomi di classi deve essere parte della definizione di una classe, per evitare problemi con classi ricorsive.

Un esempio di sezione CLASSES:

CLASSES
mia_classe1		tty1 tty2
mia_classe2		tty3 @.foo.com

Ciò definisce le classi mia_classe1 e mia_classe2 corrispondenti a quello che hanno a destra.

  La sezione GROUPS
Una sezione GROUPS definisce i tipi consentiti di tty e host in base al gruppo Unix. Se un utente è membro di un gruppo Unix in accordo a /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 incomincia con la parola GROUPS, tutta in maiuscole, all'inizio di una riga, ogni riga seguente è una sequenza di parole separate da spazi o tabulazioni. La prima parola di una riga è il nome del gruppo e il resto delle parole sulla riga specificano le tty e gli host dai quali è consentito accesso ai membri di quel gruppo. Queste specificazioni possono comportare l'uso di classi definite nelle precedenti sezioni CLASSES.

Esempio di una sezione GROUPS:

GROUPS
sys		tty1 @.bar.edu
stud		mia_classe1 tty4

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

  La sezione USERS
Una sezione USERS comincia con la parola USERS tutta in maiuscolo all'inizio di una riga, e ogni riga successiva è una sequenza di parole separate da spazi o tabulazioni. La prima parola in una riga è un nome di utente e a quell'utente è permesso di collegarsi dai tty e dagli host menzionati nel resto della riga. Queste specificazioni possono comportare classi definite in precedenti sezioni CLASSES. Se non viene specificata alcuna intestazione all'inizio del file, la prima sezione è predefinita come sezione USERS.

Esempio di una sezione USERS:

USERS
zacho           tty1 @130.225.16.0/255.255.255.0
blue            tty3 mia_classe2

Ciò consente all'utente zacho di collegarsi solo sul tty1 e dagli host con indirizzi IP nell'intervallo 130.225.16.0 - 130.225.16.255, e all'utente blue consente di collegarsi dal tty3 e da qualunque cosa sia stato specificato in mia_classe2.

Ci può essere una riga nella sezione USERS che comincia con un nome di utente di *. Questa è una regola predefinita e verrà applicata a qualsiasi utente che non corrisponda ad alcuna altra riga.

Se un utente corrisponde sia a una riga USERS sia a una riga GROUPS allora all'utente è consentito l'accesso risultante dall'unione di tutti i tty/host menzionati in tali specificazioni.

  Origini
Le specifiche di tty e i modelli di host usate nella specificazione degli accessi di classi, gruppi e utenti si chiamano origini. Una stringa origine può avere uno dei seguenti formati:

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

o   La stringa @localhost, che significa che all'utente è permesso di fare telnet/rlogin dall'host locale allo stesso host. Questo consente inoltre all'utente, per esempio, di eseguire il comando: xterm -e /bin/login.

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

o   Un intervallo di indirizzi IPv4 , scritto @x.x.x.x/y.y.y.y dove x.x.x.x è l'indirizzo IP nella consueta notazione decimale puntata, e y.y.y.y è una bitmask nella stessa notazione che specifica quali bit nell'indirizzo devono essere confrontati con l'indirizzo IP dell'host remoto. Per esempio, @130.225.16.0/255.255.254.0 vuol dire che l'utente può fare rlogin/telnet da qualsiasi host il cui indirizzo IP sia nell'intervallo 130.225.16.0 - 130.225.17.255.

Qualunque delle suddette origini può essere prefissata da una specificazione di tempo secondo 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 collegamento è consentito dal lunedì al venerdì fra le 8:00 e le 17:59 (5:59 p.m.) dalla tty3. Questo mostra anche che un intervallo di ore a-b include tutti gli istanti fra a:00 e b:59. La specificazione di una singola ora (come 10) significa l'intervallo di tempo fra le 10:00 e le 10:59.

La mancata specificazione di qualsiasi prefisso di tempo per una tty o host significa che il collegamento da quella origine è permesso in qualunque momento. Se dato un prefisso di tempo, ci si accerti di specificare sia un insieme di giorni sia una una o più ore o intervalli di ore. Una specificazione di ore non può comprendere nessuno spazio bianco.

Se non è data alcuna regola predefinita allora gli utenti che non corrispondano ad alcuna riga di /etc/usertty possono collegarsi da qualunque posto, come è il 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, a differenza di altri sistemi operativi draconiani, non controlla le quote di spazio. Non è supportata l'opzione non documentata del BSD -r. Ciò potrebbe essere richiesto da alcuni programmi di rlogind(8).

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