Repository 32bit  Forum
Repository 64bit  Wiki

Usare Sudo

Da Slacky.eu.
Versione delle 19:44, 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 italianiil nome del programma sudo è tutto un divertimento: sudo! Il significato del nome è in realtà da trovarsi nella lingua di chia 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.

Queso 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 quuei 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ò queso è 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 queso 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 aliasesbisognad 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 ovver:

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!

Strumenti personali
Namespace

Varianti