[>a256.html>] [<a254.html<] [^a2.html^]


Capitolo 39.   Registrazione e controllo

In ogni sistema operativo multiutente c'è la necessità di controllare gli accessi, per mezzo della registrazione degli utenti e della registrazione degli eventi. Nei sistemi Unix un utente che può accedere ha un account: letteralmente si tratta di un conto, o in altri termini un «accredito», o meglio ancora una specie di contratto di utenza, che gli permette di esistere nel sistema in qualità di «utente logico».

La tabella 39.1 elenca i programmi e i file a cui si accenna in questo capitolo.

Nome Descrizione
syslogd Demone per l'annotazione nel registro del sistema.
/etc/syslog.conf Configurazione di syslogd.
logger Aggiunge delle annotazioni nel registro del sistema.
klogd Demone per la registrazione dei messaggi del kernel.
login Permette l'accesso a un sistema.
/etc/passwd Tabella delle caratteristiche salienti degli utenti.
/etc/group Tabella delle caratteristiche salienti dei gruppi.
/etc/shadow Tabella delle password quando non sono in /etc/passwd.
/var/run/utmp Elenco degli accessi in corso.
/var/log/wtmp Elenco degli accessi trascorsi.
/etc/motd Messaggio di apertura o messaggio del giorno.
/etc/nologin Messaggio di impedimento all'accesso.
/etc/securetty Elenco dei terminali da cui è consentito l'accesso all'utente root.
/var/mail/* Messaggi di posta elettronica degli utenti.
~/.hushlogin Accesso rapido.
/var/log/lastlog Data e orario dell'ultimo accesso.
su Permette di operare con l'identità di un altro utente.
newgrp Permette di cambiare gruppo.
users Elenca i nomi degli utenti che accedono al sistema.
w Elenca i nomi e altre notizie degli utenti che accedono.
who Elenca i nomi degli utenti che accedono al sistema.
finger Fornisce notizie sugli utenti di un certo elaboratore nella rete.
whoami Emette il nome dell'utente.
logname Emette il nome dell'utente.

Tabella 39.1. Riepilogo dei programmi e dei file per la gestione della registrazione degli utenti e del controllo degli accessi.

39.1   Registro del sistema

Il registro del sistema (system log, o anche syslog) è la procedura di registrazione degli eventi importanti all'interno di un cosiddetto file di log, ovvero un file delle registrazioni. Questa procedura è gestita principalmente dal demone syslogd, che viene configurato attraverso /etc/syslog.conf. Altri programmi o demoni possono aggiungere annotazioni al registro inviando messaggi a syslogd.

Anche se potrebbe sembrare che la conoscenza di questo sistema di registrazione sia uno strumento utile principalmente per chi ha già esperienza di GNU/Linux o dei sistemi Unix in generale, la consultazione dei file delle registrazioni può essere di aiuto al principiante che si trova in difficoltà e non sa quale sia la causa del mancato funzionamento di qualcosa.

39.1.1   # syslogd

syslogd [opzioni]

È il demone che si occupa delle annotazioni nel registrazione del sistema. Di norma viene avviato durante la procedura di avvio del sistema. Utilizza un file di configurazione che di solito è /etc/syslog.conf. Questo file viene letto nel momento in cui syslogd si avvia e per fare in modo che venga riletto (per esempio dopo una modifica), occorre inviare al processo di syslogd un segnale di aggancio (SIGHUP).

kill -HUP PID_di_syslogd
Alcune opzioni
-f file_di_configurazione

Specifica un file di configurazione diverso da quello predefinito.

-m minuti

Stabilisce l'intervallo espresso in minuti tra i messaggi di marcatura. Il valore predefinito è 20.

-p log_socket

Specifica un socket diverso da quello predefinito che è /dev/log.

39.1.2   /etc/syslog.conf

È il file di configurazione utilizzato da syslogd per definire in che modo devono essere gestiti i messaggi da registrare. Se si vogliono apportare modifiche a questo file è necessario fare in modo che venga riletto da syslogd. Per fare questo è possibile mandare a syslogd il segnale SIGHUP:

kill -HUP PID_di_syslogd

Tuttavia, in certi casi, questo segnale può anche provocare la conclusione del funzionamento del programma. Se necessario si può riavviare semplicemente:

syslogd

La sintassi per l'utilizzo di questo file di configurazione è relativamente semplice. Le righe vuote e quelle che iniziano con il simbolo # sono ignorate. Le altre sono record composti da due campi: il primo definisce la selezione, il secondo l'azione.

Il campo che definisce la selezione, serve a indicare per quali eventi effettuare un'annotazione attraverso l'azione indicata nel secondo campo. Questo primo campo si divide in due sottocampi, uniti da un punto singolo (.), e questi si riferiscono ai servizi e alle priorità. I servizi sono rappresentati da una serie di parole chiave che rappresentano una possibile origine di messaggi, mentre le priorità sono altre parole chiave che identificano il livello di gravità dell'informazione.

Le parole chiave riferite ai servizi possono essere:

Volendo identificare tutti i servizi si può usare l'asterisco (*), mentre per indicarne un gruppo se ne può inserire un elenco separato da virgole (,).

Le parole chiave riferite alle priorità possono essere quelle seguenti, elencate in ordine di importanza crescente, per cui l'ultima è quella che rappresenta un evento più importante:

In linea di massima, l'indicazione di una parola chiave che rappresenta una priorità implica l'inclusione dei messaggi che si riferiscono a quel livello, insieme a tutti quelli dei livelli superiori. Per indicare esclusivamente un livello di priorità, occorre fare precedere la parola chiave corrispondente dal simbolo =. Si possono indicare assieme più gruppi di servizi e priorità, in un solo campo, unendoli attraverso un punto e virgola (;). Si possono escludere delle priorità ponendo anteriormente un punto esclamativo (!).

Il secondo campo, quello che definisce l'azione, serve a indicare la destinazione dei messaggi riferiti a un certo gruppo di servizi e priorità, come definito dal primo campo. Può trattarsi di un file o di altro, a seconda del primo carattere utilizzato per identificarlo. Segue l'elenco.

È importante osservare che gli stessi messaggi possono essere inviati anche a destinazioni differenti, attraverso più record in cui si definiscono le stesse coppie di servizi e priorità, oppure coppie differenti che però si sovrappongono.

Vedere anche la pagina di manuale syslog.conf(5).

Esempi
# Salva tutti i messaggi in un file unico: /var/log/syslog
*.*                     /var/log/syslog

Invia tutti i messaggi nel file /var/log/syslog.

# Invia tutti i messaggi del kernel sulla console
kern.*                  /dev/console

I messaggi del servizio kern, a qualunque livello di priorità appartengano, vengono inviati al dispositivo corrispondente alla console. In pratica vengono scritti sullo schermo della console.

mail.*                  /var/log/maillog

I messaggi riferiti alla gestione della posta elettronica sono memorizzati nel file /var/log/maillog.

# Invia tutti i messaggi da warning in su, all'elaboratore dinkel.brot.dg
*.warning               @dinkel.brot.dg

I messaggi la cui priorità raggiunge o supera il livello warning, vengono inviati all'elaboratore dinkel.brot.dg.

*.*                     @dinkel.brot.dg
*.=debug                /var/log/debug
*.=info;*.=notice       /var/log/messages
*.warning               /var/log/syslog

Invia tutti i messaggi all'elaboratore dinkel.brot.dg, e inoltre, invia i messaggi debug nel file /var/log/debug, i messaggi info e notice nel file /var/log/messages, e infine tutti i messaggi da warning in su nel file /var/log/syslog.

*.=info;*.=notice       /var/log/messages
*.warning               /var/log/syslog

*.=debug;*.=info        /dev/tty9
*.=notice;*.=warning    /dev/tty10
*.=err;*.=crit          /dev/tty11
*.=alert;*.=emerg       /dev/tty12

Invia i messaggi info e notice nel file /var/log/messages, i messaggi da warning in su nel file /var/log/syslog, quindi suddivide nuovamente i livelli di priorità e li invia a quattro diverse console virtuali, da /dev/tty9 a /dev/tty12.

39.1.3   Archiviazione dei file delle registrazioni del sistema

Per archiviare i file generati da kerneld, se la propria distribuzione GNU/Linux non gestisce già questo problema, si possono copiare i file delle registrazioni altrove, eventualmente anche comprimendoli, quindi si può azzerare il loro contenuto semplicemente copiandovi sopra il file /dev/null.

Supponendo di dovere gestire i file /var/log/messages e /var/log/syslog, si potrebbe procedere come segue:

cat /var/log/messages | gzip -9 > /var/log/messages.1.gz

cat /var/log/syslog | gzip -9 > /var/log/syslog.1.gz

cp /dev/null /var/log/messages

cp /dev/null /var/log/syslog

killall -HUP syslogd

39.1.4   Riservatezza delle informazioni

Le informazioni che vengono memorizzate nel registro del sistema potrebbero essere delicate, sia per la sicurezza del sistema, sia per i singoli utenti. Per questo, è bene ricordare che i file che compongono il registro del sistema non dovrebbero essere accessibili in lettura agli utenti comuni.

39.1.5   $ logger

logger [opzioni] [messaggio]

Permette di aggiungere delle annotazioni all'interno del registro del sistema. Se non vengono forniti argomenti, il messaggio da registrare viene atteso dallo standard input. Se si utilizza la tastiera, per concludere è necessario utilizzare il codice di EOF che di norma si ottiene con la combinazione [Ctrl+d].

Alcune opzioni
-f file

Permette di includere il file indicato all'interno del registro del sistema.

39.1.6   # klogd

klogd [opzioni]

È il demone specifico per l'intercettazione e la registrazione dei messaggi del kernel Linux. Di norma viene avviato dalla procedura di inizializzazione del sistema, subito dopo syslogd.

Alcune opzioni
-f file_delle_registrazioni

Specifica un file particolare per le registrazioni, invece di dirigere i messaggi direttamente al demone della gestione del registro del sistema, cioè syslogd.

39.2   Login, ovvero la procedura di accesso

Il login è la procedura di accesso attraverso la quale un utente, registrato precedentemente, viene riconosciuto e gli viene concesso di utilizzare il sistema. Il concetto è simile a quello di una firma di ingresso. Quando un utente conclude la sua attività con il sistema, esegue un logout. Il concetto del logout è simile a quello di una firma di uscita.

La procedura di accesso è controllata normalmente dal programma login, che si prende cura di verificare la password fornita, prima di consentire l'ingresso dell'utente. Tuttavia, i programmi login non sono uguali in tutte le distribuzioni GNU/Linux, e ognuno può essere stato predisposto per una politica differente. A titolo di esempio, un programma login potrebbe accettare l'accesso da parte di utenti per i quali non sia stata definita una password, mentre un altro potrebbe escluderlo. In queste sezioni si affronta il problema in modo superficiale, cercando di fare riferimento alle consuetudini consolidate; il lettore deve tenere presente che l'unica documentazione certa sul funzionamento di login è quella fornita assieme alla sua distribuzione GNU/Linux: la pagina di manuale login(1).

39.2.1   $ login

login [utente]

Permette l'accesso dell'utente al sistema. Di solito non si usa direttamente, anzi, ciò dovrebbe essere impossibile: è compito del programma di gestione del terminale, Getty o simili, di avviarlo dopo aver ottenuto il nominativo-utente.

Ogni utente registrato nel sistema, cioè ogni utente che (teoricamente) può accedere al sistema, ha una directory personale, o directory home, all'interno della quale si trova posizionato al momento dell'accesso. Questa directory contiene dei file riguardanti la configurazione particolare dell'utente a cui appartiene. La directory personale è collocata normalmente in /home/nome_utente/ e questa, se la shell lo consente, viene abbreviata utilizzando il simbolo tilde (~). La directory personale dell'utente root è speciale e dovrebbe trovarsi in /root/. Durante un accesso normale da parte di un utente qualunque, compreso root, vengono richiesti il nome dell'utente (se non era già stato fornito nella riga di comando) e la password. Quindi vengono visualizzati:

Se si tratta di un utente al quale è associata una password, questa viene richiesta e controllata. Se risulta errata, vengono consentiti un numero limitato di tentativi. Generalmente, gli errori vengono riportati all'interno del registro del sistema. Se l'utente che chiede di accedere non è root, e se esiste il file /etc/nologin, ne viene visualizzato il contenuto sullo schermo e non viene consentito l'accesso. Ciò serve per impedire l'accesso al sistema, tipicamente quando si intende chiuderlo. Perché l'accesso possa essere effettuato come utente root, occorre che il terminale (TTY) da cui si intende accedere sia elencato all'interno di /etc/securetty. I tentativi di questo tipo che provengono da terminali non ammessi, vengono annotati all'interno del registro del sistema. Se esiste il file ~/.hushlogin, viene eseguito un accesso silenzioso, nel senso che vengono disattivati:

Se esiste il file /var/log/lastlog, viene visualizzata la data e l'ora dell'ultimo accesso e ne viene registrato quello in corso. Al termine della procedura di accesso viene avviata la shell dell'utente. Se all'interno del file /etc/passwd non è indicata la shell da associare all'utente che accede, viene utilizzato /bin/sh. Se all'interno del file /etc/passwd non è indicata la directory personale dell'utente, viene utilizzata la directory radice (/).

Quanto detto dovrebbe essere sufficiente per capire che la semplice rimozione dell'indicazione della shell o della directory personale da un record del file /etc/passwd, non è un sistema per impedire l'accesso a un utente.

39.2.2   /etc/passwd

È un elenco di utenti, password, directory home (directory personali nel caso si utenti umani), shell e altre informazioni personali utilizzate da finger (100.3.2). La struttura dei record (righe) di questo file è molto semplice:

utente:password:UID:GID:dati_personali:directory_home:shell

Segue la descrizione dei campi.

  1. utente

    È il nome utilizzato per identificare l'utente logico che accede al sistema.

  2. password

    È la password cifrata. Se questa indicazione manca, l'utente può accedere senza indicare alcuna password. Se questo campo contiene un asterisco (*) l'utente non può accedere al sistema.

  3. UID

    È il numero identificativo dell'utente (User ID).

  4. GID

    È il numero identificativo del gruppo a cui appartiene l'utente (Group ID).

  5. dati_personali

    Di solito, questo campo contiene solo l'indicazione del nominativo completo dell'utente (nome e cognome), ma può contenere anche altre informazioni che di solito sono inserite attraverso chfn (40.2.6).

  6. directory_home

    La directory assegnata all'utente.

  7. shell

    La shell assegnata all'utente.

Esempi
tizio:724AD9dGbG25k:502:502:Tizio Tizi,,,,:/home/tizio:/bin/bash

L'utente tizio corrisponde al numero UID 502 e al numero GID 502; si chiama Tizio Tizi; la sua directory personale è /home/tizio/; la sua shell è /bin/bash. Di questo utente, personalmente, non si conosce niente altro che il nome e il cognome. Il fatto che UID e GID corrispondano dipende da una scelta organizzativa dell'amministratore del sistema.

tizio:*:502:502:Tizio Tizi,,,,:/home/tizio:/bin/bash

Questo esempio mostra una situazione simile a quella precedente, ma l'utente tizio non può accedere, perché al posto della password cifrata appare un asterisco.

Note

Per impedire l'accesso a un utente attraverso la procedura di accesso, è sufficiente modificare parzialmente il campo della password, per esempio con l'aggiunta di un asterisco.

39.2.3   /etc/group

È l'elenco dei gruppi di utenti. La struttura delle righe di questo file è molto semplice.

gruppo:password:GID:lista_di_utenti

Segue la descrizione dei campi.

  1. gruppo

    È il nome utilizzato per identificare il gruppo.

  2. password

    È la password cifrata. Di solito non viene utilizzata e di conseguenza non viene inserita. Se è presente una password, questa dovrebbe essere richiesta quando un utente tenta di cambiare gruppo attraverso newgrp (39.3.2).

  3. GID

    È il numero identificativo del gruppo.

  4. lista_di_utenti

    È la lista degli utenti che appartengono al gruppo. Si tratta di un elenco di nomi di utente separati da virgole.

Esempi
tizio::502:tizio

Si tratta di un caso molto semplice in cui il gruppo tizio non ha alcuna password e a esso appartiene solo un utente omonimo (tizio appunto).

users::100:tizio,caio,semproni

In questo caso, gli utenti tizio, caio e semproni appartengono al gruppo users.

39.2.4   /etc/shadow

Il file /etc/shadow appare in quei sistemi in cui è attivata la gestione delle password shadow. Serve a contenere le password cifrate, togliendole dal file /etc/passwd. Facendo in questo modo, è possibile inibire la maggior parte dei permessi di accesso a questo file, proteggendo le password. Al contrario, non è possibile impedire l'accesso in lettura del file /etc/passwd che fornisce una quantità di informazioni sugli utenti, indispensabili a molti programmi.

Il problema è descritto nel capitolo 41.

39.2.5   /var/run/utmp

È il file che contiene l'elenco degli accessi in essere nel sistema. Non è un file di testo normale, e per l'estrazione delle informazioni in esso contenute si usano dei programmi di servizio appositi. Tuttavia, è possibile che gli utenti presenti effettivamente nel sistema siano in numero maggiore, e ciò a causa del fatto che non tutti i programmi usano il metodo di registrazione fornito attraverso questo file.

Se questo file non esiste, conviene crearlo manualmente in uno dei due modi seguenti.

cp /dev/null /var/run/utmp

touch /var/run/utmp

Solitamente, è la procedura di inizializzazione del sistema a prendersi cura di questo file, azzerandolo o ricreandolo, a seconda della necessità.

39.2.6   /var/log/wtmp

Il file /var/log/wtmp ha una struttura analoga a quella di /var/run/utmp e serve per conservare la registrazione degli accessi e della loro conclusione (login-logout). Questo file non viene creato automaticamente; se manca, la conservazione delle registrazioni all'interno del sistema non viene effettuata. Viene aggiornato da Init e anche dal programma che si occupa di gestire la procedura di accesso al sistema (login).

Il formato di questo file non è quello di un file di testo normale, quindi non è leggibile o stampabile direttamente.

Se questo file non esiste, conviene crearlo manualmente in uno dei due modi seguenti.

cp /dev/null /var/log/wtmp

touch /var/log/wtmp

39.2.7   /etc/motd

Il contenuto di questo file viene visualizzato da login al termine della procedura di accesso, prima dell'avvio della shell associata all'utente. Questo file contiene, o dovrebbe contenere, il cosiddetto messaggio del giorno.

39.2.8   /etc/nologin

Se esiste questo file, login non accetta nuovi accessi al sistema, e a ogni tentativo visualizza il suo contenuto.

Se si desidera fermare il sistema è possibile creare questo file scrivendoci all'interno il motivo, o una breve spiegazione di quello che sta avvenendo.

39.2.9   /etc/securetty

Contiene l'elenco dei terminali sicuri, cioè di quelli da cui si permette l'accesso all'utente root. I nomi dei terminali vengono indicati facendo riferimento ai file di dispositivo relativi, senza l'indicazione del prefisso /dev/. L'esempio seguente mostra un elenco di terminali che comprende la console vera e propria, le sei console virtuali standard, quattro terminali seriali e quattro pseudo-terminali che accedono dalla rete locale oppure dal sistema grafico X.

console
tty1
tty2
tty3
tty4
tty5
tty6
ttyS0
ttyS1
ttyS2
ttyS3
ttyp0
ttyp1
ttyp2
ttyp3

39.2.10   /var/mail/*

Il file corrispondente al nome dell'utente, contenuto in /var/mail/ (oppure in /var/spool/mail/, a seconda dell'impostazione della distribuzione GNU/Linux), viene usato normalmente per accumulare i messaggi di posta elettronica a lui diretti.

Il programma login, dopo la visualizzazione del messaggio contenuto in /etc/motd, se trova che c'è posta per l'utente, visualizza un messaggio di avvertimento in tal senso.

La collocazione di questi file che rappresentano le caselle postali degli utenti, dipende dalla configurazione e dalla filosofia del sistema di gestione della posta elettronica. Generalmente si fa affidamento sul fatto che si utilizzi il solito Sendmail, il quale utilizza questa directory /var/mail/, o /var/spool/mail/, per questo scopo. Se il sistema GNU/Linux che si utilizza è impostato diversamente, è probabile che il programma login sia stato compilato in modo da utilizzare un percorso differente per le caselle postali.

39.2.11   ~/.hushlogin

Se esiste il file .hushlogin all'interno della directory personale di un certo utente, quando quell'utente accede, login non visualizza alcun messaggio introduttivo.

39.2.12   /var/log/lastlog

Il file /var/log/lastlog, se esiste, viene utilizzato da login per registrare gli ultimi accessi al sistema e per poter visualizzare la data e l'ora dell'ultimo accesso. Se questo file non esiste, conviene crearlo manualmente in uno dei due modi seguenti.

cp /dev/null /var/log/lastlog

touch /var/log/lastlog

39.3   Cambiamento di identità

Alcuni programmi consentono di ottenere i privilegi di un altro utente, come se si ripetesse la procedura di accesso. Questa possibilità rappresenta generalmente un problema di sicurezza. Per mezzo di questi programmi può capitare di riuscire a ottenere i privilegi dell'utente root anche quando si accede da un terminale che non viene considerato sicuro, e pertanto non risulta incluso nell'elenco di /etc/securetty.

39.3.1   $ su

su [opzioni] [utente]

su permette a un utente di diventare temporaneamente un altro, avviando una shell con i privilegi dell'utente indicato (questo vale anche per il gruppo o i gruppi a cui questo appartiene). Se non viene indicato un utente, su sottintende root. Prima di attivare la nuova shell, viene richiesta la password associata all'utente selezionato, a meno che su sia stato eseguito da chi sta già accedendo come utente root.

Per terminare l'attività in veste di questo nuovo utente, basta concludere l'esecuzione della shell con il comando exit.

Esempi

su

Utilizzando su senza argomenti, si intende implicitamente di voler acquisire i privilegi dell'utente root. Per questo viene richiesta la password.

su caio

Volendo trasformarsi temporaneamente in un altro utente, basta indicarlo come argomento, come in questo caso. Viene richiesta la password.

su tizio

L'utente root può sempre fare quello che vuole, quindi se seleziona un altro utente, perde dei privilegi, e non gli viene richiesta alcuna password.

Attenzione

Il programma su, per poter svolgere il suo compito, deve appartenere all'utente root e avere il bit SUID attivato (SUID-root). È in questo modo che un utente comune riesce a ottenere i privilegi di root o di un altro utente.

su viene usato frequentemente dall'utente root, o da un processo che ha già i privilegi dell'utente root, per diventare temporaneamente un utente comune. In tal caso, dal momento che il processo che avvia su ha già i privilegi di root, non c'è alcuna necessità della presenza del bit SUID attivo.

In generale, dal momento che su è molto importante per agevolare il lavoro dell'amministratore del sistema, se si temono problemi alla sicurezza, si può eliminare il bit SUID, per concedere praticamente il suo utilizzo solo all'utente root.

chmod u-s /bin/su

Volendo calcare la mano, si possono togliere anche tutti i permessi per il gruppo proprietario e per gli altri utenti.

chmod go-rwx /bin/su

39.3.2   $ newgrp

newgrp [gruppo]

Permette di cambiare il gruppo a cui appartiene l'utente. L'utente non cambia, la directory personale nemmeno, cambia solo il GID. Un utente può cambiare gruppo se nel file /etc/group sono diversi i gruppi a cui può appartenere l'utente. In alternativa, se il gruppo ha una password, l'utente può «entrare» nel gruppo solo se la conosce.

Il problema della gestione dei gruppi, specialmente per ciò che riguarda le password, è descritto meglio nel capitolo 41.

39.4   Informazioni sugli accessi

Molti programmi permettono di avere informazioni sugli accessi e di conseguenza anche sugli utenti. In particolare sono importanti quelli che permettono di leggere il contenuto dei file /var/run/utmp e /var/log/wtmp il cui formato non è leggibile attraverso l'uso di un semplice cat.

In particolare, per quanto riguarda i programmi che analizzano il contenuto del file /var/log/wtmp, si può leggere il capitolo 42.

39.4.1   $ users

users [file]

Visualizza i nomi degli utenti che accedono attualmente all'elaboratore. Se un utente ha attivato più sessioni in corso, il suo nome apparirà più volte nell'elenco. Se il comando viene avviato senza l'indicazione di un file, i dati visualizzati vengono estratti da /etc/utmp. Esiste comunque la possibilità di visualizzare attraverso users il contenuto di /etc/wtmp.

39.4.2   $ w

w [opzioni] [utente]

Visualizza i nomi degli utenti che accedono attualmente e varie informazioni sulla loro attività.

Vedere w(1).

39.4.3   $ who

who [opzioni] [file] [am i]

Visualizza i nomi degli utenti che accedono attualmente e varie informazioni sulla loro attività. who trae normalmente le sue informazioni dal file /etc/utmp, se non ne viene indicato un altro negli argomenti. (per esempio /etc/wtmp).

Vedere who.info oppure who(1).

39.4.4   $ whoami

whoami

Visualizza il nome dell'utente associato con l'attuale UID efficace. È equivalente a id -un.

39.4.5   $ logname

logname

Emette il nome dell'utente, così come appare dal file /var/run/utmp.

A titolo di esempio si può immaginare la situazione in cui l'utente tizio sia riuscito a ottenere i privilegi dell'utente root attraverso l'uso di su.

tizio$ su root

Password: *******

Quello che si dovrebbe ottenere con logname è il nome dell'utente che è stato usato per accedere inizialmente al sistema.

root# logname

tizio
Appunti di informatica libera 2000.07.31 --- Copyright © 2000 Daniele Giacomini --  daniele @ swlibero.org

[>a256.html>] [<a254.html<] [^a2.html^]