prof. Nunzio Brugaletta

atapSO

EnneBi – Computer Science
AvantiIndietroInizio




Utenti, superutente, cambi di identità

L'utente root ha accesso a tutte le risorse del sistema, può installare periferiche e programmi che saranno disponibili per tutti gli utenti, può cancellare o creare file in qualsiasi punto del file system in maniera indipendente dai permessi settati. Poiché, inoltre, Linux mette a disposizione utility per accesso a tutte le risorse per questo utente speciale, un uso improprio della modalità root può anche comportare disfunzioni del sistema e perdita di dati.

L'utente con diritti standard può operare liberamente solo all'interno della sua home. Se installa programmi, quando possibile, o modifica alcune proprietà, quelle ammesse, tutte le modifiche effettuate valgono solo per lui.

È possibile, mediante il comando su (Switch User), modificare temporaneamente la propria identità trasformandosi in un altro utente o anche, per determinate operazioni e temporaneamente, nell'utente root. Naturalmente è necessario conoscere la password dell'utente in cui ci si vuole trasformare:

$ whoami
uprova
$ su tux
Password:
$ whoami
tux
$ exit
exit
$ whoami
uprova

intanto si richiede al sistema di stampare il nome dell'utente che ha effettuato il login: il comando whoami chiede al sistema di stampare l'identità attuale dell'utente. Subito dopo si richiede di cambiare l'identità nell'utente tux assumendone tutti i diritti. Il sistema richiede la password dell'utente di cui si richiede di assumere l'identità e, se inserita correttamente, l'utente cambia. Il comando exit, in questo caso, permette di ritornare all'identità precedente.

In linea teorica si potrebbe assumere l'identità di root anche se si tratta di una scelta estremamente poco consigliabile e pericolosa (qualsiasi errore o anche bug di programma potrebbe comportare risultati disastrosi per il sistema). Il comando su senza specifica del nome utente permette di trasformarsi temporaneamente nell'utente root. Questo potrebbe essere utile se si vuole eseguire qualche compito per cui sono richiesti i privilegi di root ma non è, dal punto di vista della sicurezza, attribuire l'identità di root, per esempio, solo per eseguire singoli comandi non ammessi per i normali utenti.

Nel caso occorra dare la possibilità agli utenti di eseguire singoli comandi si può ricorrere al pacchetto sudo (Switch User and DO) che fornisce la possibilità di eseguire singoli programmi con i privilegi di root senza per questo cambiare l'identità dell'utente stesso.

Il sistema sudo è formato dal file di configurazione /etc/sudoers e dal comando sudo:

$ sudo less /etc/sudoers
# /etc/sudoers 
# 
# This file MUST be edited with the 'visudo' command as root. 
# 
# See the man page for details on how to write a sudoers file. 
# 

Defaults        env_reset 

# Uncomment to allow members of group sudo to not need a password 
# %sudo ALL=NOPASSWD: ALL 

# Host alias specification 

# User alias specification 

# Cmnd alias specification 

# User privilege specification 
root    ALL=(ALL) ALL 

# Members of the admin group may gain root privileges 
%admin ALL=(ALL) ALL
$ su alfa 
Password: 
$ whoami 
alfa 
$ sudo less /etc/sudoers 
[sudo] password for alfa: 
alfa is not in the sudoers file.  This incident will be reported. 
$ exit 
exit 
$ whoami 
tux
$ less /etc/group
...
admin:x:115:tux



AvantiIndietro - Inizio

http://ennebi.solira.org

ennebi@solira.org