Repository 32bit  Forum
Repository 64bit  Wiki

Usare Sudo

Da Slacky.eu.
Versione delle 20:07, 12 set 2006, autore: Darkside04 (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)


Sudo, dal verbo sudare.

Goodchild

November 6, 2004


Il perchè di un nome

Già per noi italiani il nome del programma sudo è tutto un divertimento: sudo! Il significato del nome è in realtà da trovarsi nella lingua di chi ha scritto (o meglio contribuito maggiormente a scrivere) il programma, ovvero, come spesso avviene in Linux e nel mondo del computer in generale: l'inglese. Un anglofono trovandosi davanti la parola sudo la prima espressione che potrebbe venire in mente è che in realtà sia l'abbreviazione di "as you do" ovvero "come tu fai".

Questo nome descrive bene il compito del programma ovvero permettere ad un altro utente di potere compiere determinate operazioni come se a farlo fosse un terzo. L'uso maggiore che se ne fa è quello di dare agli utenti comuni la possibilità di utilizzare quei determinati programmi che hanno bisogno dei permessi di root senza doversi loggare come tale. Un esempio molto comune sono i comandi halt e reboot che su Slackware sono di default eseguibili solo da root.

Però questo è solo un esempio, quello che si può fare con sudo è molto più vasto......

Utilizzo

Configurazione

il file da modificare per configurare correttamente sudo è sudoers.

Aliases

come nel caso di bash è possibile definire una serie di aliases in modo da semplificare la gestione dei comandi e degli utenti che hanno diritto ad usare tali comandi. Iniziamo quindi a creare un alias per un elenco di comandi come ad esempio: /sbin/halt e /sbin/reboot e chiamiamo questo alias POWER, la sintassi è:

Cmnd_Alias POWER=/sbin/halt,/sbin/reboot

dove Cmnd_Alias è il comando vero e proprio un pò come alias del bash, POWER è il nome a cui associamo i programmi halt e reboot ed infine a destra dell'uguale ci sono i programmi halt e reboot con tutto il path.

É possibile creare un alias anche per gli utenti, la sintassi è simile solo che al posto di Cmnd_Alias c'è User_Alias, per cui quello che faremo è:

User_Alias UTENTI_POWER=alice,tom

Poiché Linux nasce per server, esiste il comando anche per creare un alias di host in modo che un utente abbia il diritto ad eseguire un determinato programma solo su una determinata macchina o determinate macchine, il comando è Host_Alias e la sintassi è la medesima. In generale per un uso desktop questo alias non servirà mai, però è bene sapere della sua esistenza ne caso volesti creare una LAN.

Ultimo comando di aliasing è Runas_Alias questo è un pò sottile: sudo, come ho detto nell'introduzione permette di eseguire un programma come se ad eseguirlo fosse un altro utente, se non specificato è root se invece viene specificato questo sarà descritto in Runas_Alias

Sintassi

Una volta definiti gli aliases bisogna definire chi ha permesso di fare cosa, per fare ciò si usa la seguente sintassi (utilizzando gli aliases di esempio sopra riportati):

UTENTI_POWER NOME_PC=NOPASSWD:POWER

in questo modo gli utenti definiti in UTENTI_POWER potranno, nel pc NOME_PC, ad esempio darkstar, usare i comandi di halt e reboot come se fossero root. Il NOPASSWD è per non richiedere la password dell'utente quando questi decide di usare il dato comando, nel caso si volesse far richiedere la password (ad esempio nel caso il computer sia disponibile per più persone e una di quelle di UTENTI_POWER lascia la sua sessione aperta) basta togliere NOPASSWD, ovvero:

UTENTI_POWER NOME_PC=POWER

L'utente per potere usare il comando halt dovrà digitare tutto il percorso relativo ovvero:

sudo /sbin/reboot

e non funzionerà se invece scrive solo sudo reboot, in pratica sudo non controlla se il programma in questione è nel PATH o meno.


Utilizzo di (bash) alias per semplificarsi la vita

Per semplificarsi la vita ovvero per non dovere ogni volta che si vuole spegnere il computer scrivere sudo /sbin/halt si possono creare degli aliases di bash o della shell che si usa, ad esempio in .bashrc:

alias halt='sudo /sbin/halt |

in questo modo per spegnere il computer si digita solamente halt. Non abbiate paura di creare confusione in bash poichè avete definito l'alias halt con lo stesso nome del comando halt, tanto del comando presente in /sbin/ non avete comunque accesso! E di fatti usate sudo proprio per poterlo usare!

Importanza degli aliases

Ci si potrebbe domandare perchè ho stressato molto sul discorso degli aliases in sudo, bhe la ragione è: comodità!

Ad esempio:

su un computer a casa all'inizio usate Linux solo voi poi anche il fratello, la sorella, il padre, la madre, il/la fidanzato/fidanzata vuole usare Linux ed a questo punto dopo avere creato l'utente per la nuova persona convertita a Linux vi trovate a dovere riscrivere sudoers per potere dargli accesso ai comandi halt o reboot. Se avete creato gli aliases tutto quello che dovrete fare è aggiungere il nome utente dopo il vostro in UTENTI_POWER piuttosto che dover riscrivere la riga corrispondente.

References

  1. T.Miller, C.Jepeway "Sudo man page"
  2. T.Miller, C.Jepeway "Sudoers man page"
  3. sudo
Strumenti personali
Namespace

Varianti