14726
Commento:
|
3531
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from AmministrazioneSistema/Sudo ## docs intrepid |
|
Linea 3: | Linea 5: |
[[BR]] ||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents(1)]]|| [[Include(StrumentiWiki/GuideConsigliate)]] |
<<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=607378"; rilasci="20.04 18.04 16.04 14.04")>> |
Linea 10: | Linea 11: |
Nei sistemi operativi Unix e GNU/Linux c'è un utente particolare, detto '''super utente''' e contraddistinto dall'avere un '''UID''' (User ID) uguale a '''0''' e nome utente '''root''', che ha totale accesso al sistema senza nessuna restrizione, cioè ne è l' '''amministratore'''. | Nei sistemi operativi Unix e GNU/Linux c'è un utente particolare, detto '''super utente''', contraddistinto dall'avere un '''UID''' (User ID) uguale a '''0''' e nome utente '''root''', che ha totale accesso al sistema senza nessuna restrizione. Cioè ne è l' '''amministratore'''. |
Linea 14: | Linea 15: |
'''Ubuntu''' usa un sistema diverso per compiere operazioni amministrative, basato sull'utilizzo del comando '''sudo'''. Con '''sudo''' l'utente non ha la necessità di ricordare per sempre la password, anche se normalmente userà l'account '''root''' molto raramente. Inoltre, costringendo all'esecuzione controllata dei singoli comandi, si evitano eventuali disattenzioni nell'utilizzo degli stessi, chiedendo la password nel caso si stiano per lanciare comandi amministrativi e mantenendo un [:LogDiSistema#autorizzazione:log] completo dei comandi eseguiti, permettendo l'analisi di ciò che è avvenuto nel sistema. | '''Ubuntu''' usa un sistema diverso per compiere operazioni amministrative, basato sull'utilizzo del comando '''sudo'''.<<BR>> Ciò comporta i seguenti vantaggi: * Con '''sudo''' l'utente non ha la necessità di ricordare per sempre la password, anche se normalmente userà l'account '''root''' molto raramente. * Costringendo l'utente comune all'esecuzione controllata dei singoli comandi (mediante digitazione della password), si limitano eventuali disattenzioni nell'utilizzo degli stessi. * Viene mantenuto un [[AmministrazioneSistema/LogDiSistema#autorizzazione|log]] completo dei comandi eseguiti, permettendo l'analisi di ciò che è avvenuto nel sistema. * Vi è maggiore sicurezza se si ha abilitato l'account '''root''', poiché se si utilizza '''su''' è necessario inserire due password (quella utente e quella dell'account '''root'''). * Quando in un sistema alcuni compiti amministrativi sono condivisi fra diversi account, l'utilizzo di '''sudo''' evita di dover dare la password di '''root''' a vari utenti. * L'amministratore può assegnare o revocare, a proprio piacimento, i privilegi di amministrazione a qualsiasi utente. Quindi, vi è la possibilità di assegnarli temporaneamente ad un utente, per poi limitarli quando non più necessario. |
Linea 16: | Linea 24: |
Di contro, se qualcuno scopre la password di un utente abilitato all'utilizzo di '''sudo''' come '''root''' in effetti può facilmente ottenere accesso totale al sistema. Normalmente, le password utente sono più semplici rispetto a quelle scelte per l'utente '''root''' e ciò può rivelarsi fonte di problemi; per tale ragione bisogna prestare molta attenzione nella scelta delle password utente. Se si ha abilitato l'account '''root''' e si utilizza '''su''', per ottenere i privilegi di amministrazione è necessario inserire due password, quella utente e quella dell'account '''root'''. Quando in un sistema alcuni compiti amministrativi sono condivisi fra diversi account, l'utilizzo di '''sudo''' evita di dover dare la password di '''root''' a vari utenti. L'amministratore può assegnare temporaneamente a qualsiasi utente privilegi particolari, eliminandoli o limitandoli quando non vi è più necessità. = Il comando sudo = '''sudo''' ('''''s'''uper``'''u'''ser '''do''''') consente di eseguire un comando come se si fosse un altro utente. Effettua una specie di sostituzione, previa autorizzazione, tra l'utente attuale (colui che esegue il comando '''sudo''') e l'utente '''target''' (colui che esegue l'effettivo comando). Mentre con il comando '''su''' si cambia utente fino al termine della sessione del terminale, '''sudo''' assegna i privilegi dell'utente '''target''' al solo processo che viene con esso avviato. Per eseguire dei comandi con privilegi d'amministrazione è sufficiente digitare '''sudo''' e successivamente il comando che si desidera eseguire come utente '''root''', come nel seguente esempio: {{{ sudo nano /etc/modules |
{{{#!wiki important Se viene scoperta la password di un utente abilitato all'utilizzo di '''sudo''', utenti non autorizzati potrebbero ottenere facilmente accesso totale al sistema. Infatti normalmente le password utente sono più semplici rispetto a quelle scelte per l'utente '''root'''. Per tale ragione bisogna prestare molta attenzione nella scelta delle password utente (per approfondire l'argomento consultare questa [[Sicurezza/GestionePassword|guida]]). |
Linea 31: | Linea 28: |
L'utente '''target''' non deve essere necessariamente l'amministratore, ma può essere un qualsiasi utente del sistema. Per scegliere l'utente '''target''', usare l'opzione '''-u''': {{{ sudo -u target comando }}} |
= Utilizzi = |
Linea 36: | Linea 30: |
Una volta digitato il comando, il sistema chiederà la password dell'utente attuale e non la password dell'utente '''target''' (a meno che non si configuri '''sudo''' in modo diverso). La password viene chiesta la prima volta e memorizzata per un certo lasso di tempo, quindi è possibile usare il comando '''sudo''' più volte consecutive senza dover inserire ogni volta la password. | * '''[[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|sudo]]''': guida al comando per eseguire operazioni con i privilegi di amministrazione, solitamente utilizzato nel [[AmministrazioneSistema/Terminale|terminale]]. |
Linea 38: | Linea 32: |
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Per motivi di sicurezza il terminale non mostra nessun carattere di inserimento della password. A differenza delle richieste grafiche, nel terminale non vengono mostrati nemmeno gli asterischi di mascheramento. Digitare correttamente la password e premere'' «'''Invio'''». || Con '''sudo''' l'amministratore del sistema può assegnare privilegi particolari a qualsiasi utente, definire quali comandi far eseguire e quali no, avere il log di tutte le operazioni effettuate e ricevere via email informazioni su tentativi di accesso non autorizzati. [[Anchor(parametri)]] = Parametri alla riga di comando = '''sudo''' può essere lanciato con una serie di parametri che ne modificano il funzionamento temporaneamente. Quelli che seguono sono una parte delle opzioni disponibili: ||<tablestyle="width:100%" : 10% style="background-color:#FB8B00;">'''Opzione''' ||<style="background-color:#FB8B00;":>'''Risultato''' || ||<:>'''-H''' || imposta la variabile di sistema «'''$HOME'''» con la cartella '''Home''' dell'utente '''target''', cioè quello che eseguirà il comando, normalmente '''root'''; in maniera predefinita '''sudo''' lascia inalterata la «'''$HOME'''» || ||<:>'''-b''' || esegue il comando in background || ||<:>'''-k''' || serve a eliminare il salvataggio della password per l'utente; al successivo utilizzo di '''sudo''' verrà nuovamente richiesta la password || ||<:> '''-l''' || visualizza i comandi che si è autorizzati a usare o non usare || ||<:>'''-i''' || consente di entrare nella [:AmministrazioneSistema/RigaDiComando:riga di comando] come utente '''target''' simulando l'accesso per il nuovo utente e impostando le variabili d'ambiente; in pratica consente all'utente di ''diventare'' '''root''' e quindi non dover utilizzare '''sudo''' ad ogni successivo comando || ||<:>'''-s''' || consente di entrare nella [:AmministrazioneSistema/RigaDiComando:riga di comando] come utente '''target'''; questa opzione è quasi identica a '''-i''', ma non imposta le variabili d'ambiente dell'utente '''target''' || [[Anchor(abilitare_login_root)]] = Abilitare l'accesso come utente root = In '''Ubuntu''', in modo predefinito, l'accesso come utente '''root''' è disabilitato, impedendo così l'utilizzo di '''su''', ma permettendo comunque l'utilizzo di '''sudo'''. Questa scelta è dovuta a motivi di sicurezza. Se strettamente necessario, è possibile abilitare l'accesso come utente '''root''' assegnandogli una password con il seguente comando: {{{ sudo passwd root }}} La prima password richiesta è quella per '''sudo''', successivamente verrà richiesta la password per l'utente '''root''' e la successiva conferma. Per disabilitare l'accesso come amministratore si può usare il seguente comando: {{{ sudo passwd -l root }}} In questo modo l'accesso come utente '''root''' risulterà nuovamente bloccato. Per utilizzare '''su''', dopo aver assegnato la password all'utente '''root''' è necessario impostare i giusti permessi al comando stesso: {{{ chmod 4750 /bin/su }}} [[Anchor(applicazioni_grafiche)]] = Avviare applicazioni grafiche con privilegi di amministrazione = Quando è necessario avviare da terminale un'applicazione grafica usando i privilegi d'amministrazione, è possibile utilizzare i comandi '''gksudo''', se si utilizza [:AmbienteGrafico/Gnome:GNOME], o '''kdesu''', se si usa [:AmbienteGrafico/Kde:KDE]. Quelli che seguono sono degli esempi: * {{{ gksudo gedit /etc/apt/sources.list }}} Apre il file {{{/etc/apt/sources.list}}}} con l'editor '''gedit''' di '''GNOME''' e con i privilegi di amministrazione. * {{{ kdesu kate /boot/grub/menu.lst }}} Apre il file {{{/boot/grub/menu.list}}} con l'editor '''kate''' di '''KDE''' e con i privilegi di amministrazione. È sconsigliato usare '''sudo''' per avviare un'applicazione grafica, in quanto, soprattutto in '''KDE''', le variabili d'ambiente non verranno impostate nella maniera corretta. = Configurazione = È possibile modificare la configurazione di '''sudo''' con il seguente comando: {{{ sudo visudo }}} Il file di configurazione `/etc/sudoers` è composto da tre sezioni: * impostazione degli [#definizionealias alias]; * impostazione delle [#opzionidefault opzioni di default]; * impostazione delle [#autorizzazioni autorizzazioni]. [[Anchor(definizionealias)]] == Impostazione degli alias == In questa sezione vengono definiti degli ''alias'' in modo da potersi riferire, successivamente, in modo più semplice alle informazioni per la configurazione dei privilegi utente. Le istruzioni di definizione degli alias seguono la forma: {{{ tipo_alias NOME_ALIAS = voce1, voce2, voce3 ... voceX }}} Dove «tipo_alias» può essere: * «User_Alias»: per definire l'alias per un elenco di utenti; * «Cmnd_Alias»: per definire l'alias per un elenco di comandi; * «Host_Alias»: per definire l'alias per un elenco di host. Quelli che seguono sono degli esempi: * {{{ User_Alias AMMINISTRATORI = utente1, utente2, utente3 }}} Definisce un gruppo di utenti a cui si potrà far riferimento con la dicitura «AMMINISTRATORI». * {{{ Cmnd_Alias UTILITY = /sbin/comando1, /usr/bin/comando2, etc.. }}} Definisce un gruppo di comandi. * {{{ Host_Alias MACCHINE = macchina1, macchina2, macchina3 }}} Definisce un gruppo di host. [[Anchor(opzionidefault)]] == Impostazione delle opzioni predefinite == È possibile configurare il comportamento standard di '''sudo''' impostando una serie di parametri con la parola chiave «Defaults». Ci sono decine di parametri configurabili con '''Defaults''', i principali sono i seguenti: * «mail_always»: invia una mail all'utente configurato con l'opzione '''mailto''' per ogni comando eseguito con '''sudo'''; * «mail_badpass»: invia una mail quando un utente inserisce una password sbagliata; * «mail_no_user»: invia una mail quando l'utente corrente non è tra quelli definiti in `/etc/sudoers`; * «rootpw»: indica a '''sudo''' di richiedere la password di '''root''' invece della password utente per l'autenticazione; * «targetpw»: indica a '''sudo''' di richiedere la password di dell'utente '''target''' invece della password utente per l'autenticazione; * «passwd_timeout»: imposta il tempo in minuti dopo il quale '''sudo''' dimentica la password inserita dall'utente; * «timestamp_timeout»: imposta il tempo in minuti dopo il quale verrà richiesta nuovamente la password. Se impostato a 0 ad ogni comando verrà richiesta la password; * «mailsub»: imposta l'oggetto delle mail inviate; il messaggio di default è il seguente: {{{ *** SECURITY information for %h *** }}} È possibile usare il parametro «%h» come nome host; * «mailto»: imposta l'indirizzo email dell'utente al quale inoltrare le mail di segnalazione; * «logfile»: imposta il [:LogDiSistema:file di log] per il logging delle operazioni. [[Anchor(autorizzazioni)]] == Impostazione delle autorizzazioni == I comandi per l'impostazione dei privilegi definiscono quali utenti possono utilizzare quali comandi, da quali host e in che modo. La forma generale è la seguente: {{{ elenco_utenti elenco_host = (user_target) elenco_comandi }}} * «elenco_utenti»: può essere un utente, un alias definito in precedenza o anche un gruppo di sistema definito in `/etc/group` precedendo il nome del gruppo con il simbolo percentuale «%». Possono essere inserite varie voci, separando ciascuna con una virgola «,»; * «elenco_host»: i nomi delle macchine da cui è consentito utilizzare '''sudo'''. Si può usare anche un alias definito per gli host. Possono essere inserite varie voci, separando ciascuna con una virgola «,». Con «ALL» si consente l'uso di '''sudo''' da qualsiasi host; * «(user_target)»: è un parametro opzionale con cui si dice a '''sudo''' di eseguire i comandi come utente '''user_target''' invece che '''root'''; * «elenco_comandi»: l'elenco dei comandi a cui si da autorizzazione; si può usare anche un alias definito per i comandi. Possono essere inserite varie voci, separando ciascuna con una virgola «,». Con «ALL» si consente l'esecuzione di qualsiasi comando. Inoltre, si può anche inserire il nome di una directory, terminando il percorso con uno slash «/» per indicare tutti i comandi contenuti in quella directory; Con la parola chiave «NOPASSWD» è possibile può indicare a '''sudo''' che per i comandi definiti successivamente non è richiesto l'inserimento della password. Inoltre, si può negare l'esecuzione di un comando, o un gruppo di comandi, inserendo prima di «elenco_comandi» un punto esclamativo «!». Questa modalità è comunque sconsigliata in quanto è sempre possibile aggirare la negazione rinominando il comando. Quelli che seguono sono degli esempi: * {{{ pippo ALL = (ALL) ALL }}} Assegna all'utente '''pippo''' qualsiasi privilegio. * {{{ AMMINISTRATORI ALL = UTILITY }}} Assegna agli utenti raggruppati in «AMMINISTRATORI» i privilegi per eseguire i comandi raggruppati in «UTILITY» da qualunque host. * {{{ utente1,utente2 macchina1 = (utente2) NOPASSWD: /directory1/comando1, /directory2/, !/directory2/comando2 }}} Consente a '''utente1''' e '''utente2''', se collegati sulla '''macchina1''', di eseguire senza inserire la password il '''comando1''' ed i comandi contenuti in {{{/directory2}}}, escludendo '''/directory2/comando2''' all'utente '''utente2'''. = Possibili problemi con il modello sudo = Benché l'utilizzo di '''sudo''' per il desktop abbia molti benefici, ci sono dei possibili problemi che è necessario elencare: * alcuni pacchetti presenti nel [:Repository/Componenti:componente] '''universe''' sono danneggiati (ad esempio ''webmin'') o pericolosi da utilizzare. Un trucco per evitare problemi è abilitare l'utente '''root''' prima dell'installazione o dell'utilizzo di tali pacchetti, per poi disabilitarlo; * redirigere l'output di alcuni comandi eseguiti con '''sudo''' può portare nuovi utenti a strane conclusioni (ad esempio '''sudo ls > /root/file'''). Per raggirare tali problemi si può utilizzare '''sudo sh -c 'ls > /root/file'''', utilizzando [http://www.greenend.org.uk/rjk/2001/06/adverbio.html Adverbio] o semplicemente utilizzando '''sudo -s''' per aprire un terminale in con i privilegi di amministrazione e operare all'interno di esso. |
* '''[[AmministrazioneSistema/PrivilegiDiAmministrazione/ApplicazioniGrafiche|Applicazioni Grafiche]]''': guida sull'utilizzo di applicazioni grafiche con i privilegi di amministrazione. |
Linea 209: | Linea 36: |
* [http://www.sudo.ws/ Sito ufficiale del progetto] * [:Sicurezza:Guida alla sicurezza in Ubuntu] |
* [[http://www.sudo.ws/|sudo]] (sito ufficiale) * [[https://it.wikipedia.org/wiki/Root_(utente)|Utente root]] (voce enciclopedica) * [[https://it.wikipedia.org/wiki/Su_(Unix)|Comando su]] (voce enciclopedica) * [[Sicurezza|Guida alla sicurezza in Ubuntu]] |
Linea 213: | Linea 42: |
CategorySicurezza CategoryAmministrazione CategoryConsigliata | CategorySicurezza CategoryAmministrazione |
Guida verificata con Ubuntu: 20.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Nei sistemi operativi Unix e GNU/Linux c'è un utente particolare, detto super utente, contraddistinto dall'avere un UID (User ID) uguale a 0 e nome utente root, che ha totale accesso al sistema senza nessuna restrizione. Cioè ne è l' amministratore.
Nella maggior parte dei sistemi GNU/Linux, l'amministratore del computer non usa l'utente amministratore (per motivi di sicurezza) ma usa un utente normale per svolgere il lavoro quotidiano. Quando ha la necessità di svolgere mansioni di amministrazione apre un terminale e avvia una sessione come utente root, oppure se si trova già in un terminale come utente normale usa il comando su per diventare utente root.
Ubuntu usa un sistema diverso per compiere operazioni amministrative, basato sull'utilizzo del comando sudo.
Ciò comporta i seguenti vantaggi:
Con sudo l'utente non ha la necessità di ricordare per sempre la password, anche se normalmente userà l'account root molto raramente.
- Costringendo l'utente comune all'esecuzione controllata dei singoli comandi (mediante digitazione della password), si limitano eventuali disattenzioni nell'utilizzo degli stessi.
Viene mantenuto un log completo dei comandi eseguiti, permettendo l'analisi di ciò che è avvenuto nel sistema.
Vi è maggiore sicurezza se si ha abilitato l'account root, poiché se si utilizza su è necessario inserire due password (quella utente e quella dell'account root).
Quando in un sistema alcuni compiti amministrativi sono condivisi fra diversi account, l'utilizzo di sudo evita di dover dare la password di root a vari utenti.
- L'amministratore può assegnare o revocare, a proprio piacimento, i privilegi di amministrazione a qualsiasi utente. Quindi, vi è la possibilità di assegnarli temporaneamente ad un utente, per poi limitarli quando non più necessario.
Se viene scoperta la password di un utente abilitato all'utilizzo di sudo, utenti non autorizzati potrebbero ottenere facilmente accesso totale al sistema. Infatti normalmente le password utente sono più semplici rispetto a quelle scelte per l'utente root. Per tale ragione bisogna prestare molta attenzione nella scelta delle password utente (per approfondire l'argomento consultare questa guida).
Utilizzi
sudo: guida al comando per eseguire operazioni con i privilegi di amministrazione, solitamente utilizzato nel terminale.
Applicazioni Grafiche: guida sull'utilizzo di applicazioni grafiche con i privilegi di amministrazione.
Ulteriori risorse
sudo (sito ufficiale)
Utente root (voce enciclopedica)
Comando su (voce enciclopedica)