Il programma sudo (super user do) nelle distribuzioni GNU/Linux consente di acquisire temporaneamente i permessi di amministratore (detto anche root) per compiere determinate operazioni, senza rimanere autenticati come l’amministratore stesso del sistema. Il programma ha bisogno di un particolare file, sudoers, che si trova nella cartella /etc: esso contiene i nomi degli utenti che possono diventare temporaneamente root tramite l’utilizzo di su. Il percorso del medesimo sarà quindi /etc/sudoers.
Per modificare il suddetto non bisogna eseguire un qualunque editor di testo, bensì un programma apposito, detto visudo (una versione dell’editor vi adattata allo scopo) file /etc/sudoers contiene le regole impostate per in utenti quando essi utilizzino il comando sudo. Bisogna osservare che in Ubuntu, per default l’account di root non è utilizzabile, perché l’account root non ha la password, ed è disabilitato. È invece possibile creare un account e impostarlo come root, come in ogni altra distribuzione GNU/Linux. Su normali macchine sulle quali e in esecuzione Ubuntu è necessario usare il comando sudo per eseguire operazioni come root. l file sudoers funge quindi da configurazione per l’utilizzo di sudo.
Per modificare tal file utilizziamo il comando, digitando in un terminale:
visudo |
Il file avrà più o meno questo contenuto:
# /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 # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL |
Analizzando la riga root ALL = (ALL) ALL l’utente root potrà eseguire da tutti i terminali (valore ALL), in qualità di qualsiasi utente(valore (ALL)), qualsiasi comando (valore ALL)
La prima parte identifica l’utente, la seconda è il terminale da cui l’utente può usare sudo, la terza definisce come l’utente possa agire, l’ultima rappresenta i comandi che si possono eseguire. Per conferire ad un utente tutti gli stessi privilegi di root bisognerà aggiungere questa riga:
nomeutente ALL = (ALL) ALL
sotto la sezione # User privilege specification
Vediamo qualche altro esempio.
operator ALL= /sbin/poweroff |
Questo fa si che l’operatore gli utenti appartenenti al gruppo operators possono eseguire da qualsiasi console, il comando poweroff.
È anche possibile creare degli alias per:
User_Alias –> alias che identifica l’utente
Runas_Alias –>eseguire Comandi come altro utente (alias)
Host_Alias –> alias dell’host
Cmnd_Alias –> alias dei comandi
Questi sono alcuni esempi:
User_Alias OPERATORS = joe, mike, jude Runas_Alias OP = root, operator Host_Alias OFNET = 10.1.2.0 /255 .255.255.0 Cmnd_Alias PRINTING = /usr/sbin/lpc , /usr/bin/lprm |
Come si può vedere l’alias OPERATORS comprende gli utenti Joe, Mike e Giuda, l’alias OP comprende la gli utenti root e operator, l’alias OFNET include la rete 10.1.2.0, e l’alias PRINTING include i comandi lpc e lprm.
Qualora desideriate che non venga richiesta una password, inserite questa stringa:
ALL=(ALL) ALL NO PASSWD: ALL |
Così un tipico file sudoers potrebbe apparire come segue:
User_Alias OPERATORS = joe, mike, jude Runas_Alias OP = root, operator Host_Alias OFNET = 10.1.2.0 /255 .255.255.0 Cmnd_Alias PRINTING = /usr/sbin/lpc , /usr/bin/lprm OPERATORS ALL=ALL #The users in the OPERATORS group can run any command from any terminal. linus ALL=(OP) ALL # The user linus can run any command from any terminal as any user in the OP group (root or operator). user2 OFNET=(ALL) ALL # user user2 may run any command from any machine in the OFNET network, as any user. user3 ALL= PRINTING # user user3 may run lpc and lprm from any machine. go2linux ALL=(ALL) ALL # user go2linux may run any command from any machine acting as any user. (like Ubuntu) |
per ulteriori informazioni, nonchè per una lista di paremetri accettati da sudoers fare riferimento a questa pagina:
http://earthwindow.altervista.org/web/articoli/?p=gestione-sudoers
UNA PRECISAZIONE FINALE: L’uso di sudo ed il file sudoers sono delle importanti componenti del sistema. E altamente consigliato informarsi adeguatamente prima di fare qualunque modifica!
Seguiteci anche su Facebook, Google Plus, Tumblr, Twitter e Telegram , per restare sempre in contatto con noi e con le nostre guide.
Utente ed appassionato di GNU/Linux nonchè collaboratore occasionale di insidevcode.eu, realizza principalmente guide e articoli per il sito rivolti agli utenti che vogliano approfondire la conoscenza di vari aspetti della citata famiglia di sistemi operativi, ed all’informatica in generale.