Differences between revisions 2 and 3
Revision 2 as of 2010-09-15 13:59:30
Size: 5783
Editor: ?skizzhg
Comment:
Revision 3 as of 2010-09-19 09:09:10
Size: 5817
Comment: some minor fixes
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
In senso stretto, {{{sudo}}} è installato e abilitato (se è stato scelto il metapacchetto Desktop durante l'installazione). Tuttavia in Debian non vi sono diritti concessi di default (a differenza di alcune altre distribuzioni). In senso stretto, {{{sudo}}} è installato e abilitato (se è stato scelto il metapacchetto Desktop durante l'installazione). Tuttavia in Debian non vi sono diritti concessi in modo predefinito (a differenza di alcune altre distribuzioni).
Line 12: Line 12:
'''Eseguire un comando come root: (in un'installazione Debian predefinita)'''
 * Quando si installa il sistema, scegliere una password per l'account {{{root}}}.
 * Gnome richiede la password (per ''l'account di amministrazione'') quando si avvia un programma che configura il sistema.
'''Eseguire un comando come root (in un'installazione Debian predefinita):'''
 * Quando si è installato il sistema, si è scelta una password per l'account {{{root}}}.
 * Gnome richiede quella password (per ''l'account di amministrazione'') quando si avvia un programma che configura il sistema.
Line 22: Line 22:
 * Per impostazione predefinita i comandi vengono eseguiti come utente corrente (p.e. non privilegiati), permettendo di evitare errori. Solo i comandi preceduti da {{{sudo}}} vengono eseguiti come root.  * Per impostazione predefinita i comandi vengono eseguiti come utente corrente (cioè non privilegiato), permettendo di evitare errori. Solo i comandi preceduti da {{{sudo}}} vengono eseguiti come root.
Line 25: Line 25:
Per le ragioni esposte, il ''passaggio'' a root con "sudo -i" (o sudo) è generalmente sconsigliato perché annulla le caratteristiche di cui sopra. Per le ragioni esposte, il ''passaggio'' a root con "sudo -i" (o sudo su) è generalmente sconsigliato perché annulla le caratteristiche di cui sopra.
Line 63: Line 63:
=== Spiacente, all'utente jdoe non è consentito eseguire ... === === Spiacente, all'utente mario non è consentito eseguire ... ===
Line 74: Line 74:
[sudo] password for jdoe:
Spiacente, all'utente jdoe non è consentito eseguire '/usr/bin/test' come root su localhost.
[sudo] password for mario:
Spiacente, all'utente mario non è consentito eseguire '/usr/bin/test' come root su localhost.
Line 91: Line 91:
  * Aggiornamento per non-maintainer dal team di sicurezza
  * Invertire l'ambiente semantico costringendo gli utenti a mantenere una whitelist [env.c, Bug DebianBug:342948, CVE-2005-4158]
  * Aggiornamento non-maintainer dal team di sicurezza
  * Invertire la semantica dell'ambiente costringendo gli utenti a mantenere una lista bianca [env.c, Bug DebianBug:342948, CVE-2005-4158]
Line 94: Line 94:
Come risultato, a meno che il file sudoers non venga modificato per contenere '''env_reset predefiniti''', si possono verificare problemi come i seguenti: Come risultato, a meno che il file sudoers non venga modificato per contenere '''Defaults env_reset''', si possono verificare problemi come i seguenti:
Line 109: Line 109:
 * Manuali: [[DebianMan:5/sudoers|sudoers(5)]], [[DebianMan:8/sudo|sudo(8)]], [[DebianMan:8/visudo|visudo(8)]], [[DebianMan:8/sudoedit|sudoedit(8)]]  * Pagine man: [[DebianMan:5/sudoers|sudoers(5)]], [[DebianMan:8/sudo|sudo(8)]], [[DebianMan:8/visudo|visudo(8)]], [[DebianMan:8/sudoedit|sudoedit(8)]]

Translation(s): English - Italiano

(!) ?Discussion


root > sudo


Sudo è un programma progettato per far sì che gli amministratori di sistema permettano ad alcuni utenti di eseguire certi comandi come root (o altro utente). La filosofia di base è quella di dare meno privilegi possibile, ma permettere ancora di compiere il lavoro. Sudo è anche un modo efficace per registrare l' attività di root: chi ha usato sudo, con che comando e quando.

Su Debian sudo non è abilitato in modo predefinito

In senso stretto, sudo è installato e abilitato (se è stato scelto il metapacchetto Desktop durante l'installazione). Tuttavia in Debian non vi sono diritti concessi in modo predefinito (a differenza di alcune altre distribuzioni).

Eseguire un comando come root (in un'installazione Debian predefinita):

  • Quando si è installato il sistema, si è scelta una password per l'account root.

  • Gnome richiede quella password (per l'account di amministrazione) quando si avvia un programma che configura il sistema.

  • Per eseguire un comando come root, aprire un terminale di root (Applicazioni > Accessori > Terminale di root) o eseguire su da un terminale normale.

(Nota per Debian Testing (Squeeze): verrà introdotto uno strumento simile, PolicyKit, mirato alle necessità dei computer fissi e portatili).

Perché sudo

Usare sudo è meglio (più sicuro) che aprire una sessione come root, in particolare per i seguenti motivi:

  • Non c'è bisogno di password di root (sudo richiede la password dell'utente corrente).
  • Per impostazione predefinita i comandi vengono eseguiti come utente corrente (cioè non privilegiato), permettendo di evitare errori. Solo i comandi preceduti da sudo vengono eseguiti come root.

  • Verifica/registrazione: quando un comando è eseguito con sudo il nome dell'utente e il comando sono registrati.

Per le ragioni esposte, il passaggio a root con "sudo -i" (o sudo su) è generalmente sconsigliato perché annulla le caratteristiche di cui sopra.

Panoramica sulla configurazione

Ecco un esempio veloce se si desidera consentire ad alcuni utenti di eseguire determinati programmi (per maggiori informazioni leggere il manuale).

# /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      MYADMINS = jdoe

# User alias specification

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/shutdown, /sbin/reboot, /sbin/halt
Cmnd_Alias      PKGMGMT = /usr/bin/dpkg, /usr/bin/apt-get, /usr/bin/aptitude

# User privilege specification

# Users listed above (MYADMINS) can run package managers and reboot the system.
MYADMINS ALL = PKGMGMT, SHUTDOWN

# Users in the group wheel can execute any command impersonating any user.
#%wheel ALL= ALL

#Default rule for root.
root    ALL=(ALL) ALL

Problemi e soluzioni

Spiacente, all'utente mario non è consentito eseguire ...

Una sessione tipica si presenta così:

  • $sudo test
    
    Ci auguriamo tu abbia ricevuto la notifica dall'amministratore locale di sistema. Che si riduce solitamente a queste tre cose:
    
        #1) Rispetta la privacy altrui.
        #2) Pensa prima di digitare.
        #3) Da grandi poteri derivano grandi responsabilità.
    
    [sudo] password for mario: 
    Spiacente, all'utente mario non è consentito eseguire '/usr/bin/test' come root su localhost.

Di solito questo messaggio significa che l'utente non è autorizzato a eseguire l'operazione.

sudoers è in sola lettura

Sì, il file /etc/sudoers è impostato in sola lettura, anche per root!

Questo perché si deve usare il comando visudo per modificare /etc/sudoers.

CVE-2005-4158

Con la correzione della vulnerabilità CVE-2005-4158: Gestione insicura delle variabili d'ambiente PERLLIB PERL5LIB PERL5OPT, il comportamento predefinito per la gestione delle variabili d'ambiente è stato cambiato per proteggere contro utenti locali malintenzionati con privilegi di sudo che riescano a far compiere a sudo più di quanto il malcapitato abbia concesso.

  • sudo (1.6.8p7-1.3) stable-security; urgency=high
    • Aggiornamento non-maintainer dal team di sicurezza
    • Invertire la semantica dell'ambiente costringendo gli utenti a mantenere una lista bianca [env.c, Bug 342948, CVE-2005-4158]

Come risultato, a meno che il file sudoers non venga modificato per contenere Defaults env_reset, si possono verificare problemi come i seguenti:

  • E138: Impossibile scrivere il file viminfo $HOME/.viminfo!
  • dircolors: Nessuna variabile d'ambiente SHELL e nessuna opzione del tipo di shell impostata
  • squidview: Impossibile ottenere la directory home, esco

Se si avessero configurazioni più complesse nelle quali si vuol passare per le variabili di ambiente, il lavoro sarebbe più complesso o non più possibile.

Bug: 342948

L'opzione PASSWD non funziona

sudo ha un flag chiamato exempt_group che contiene un elenco di gruppi per i quali il valore di NOPASSWD è impostato sempre a vero e l'impostazione di PASSWD non ha effetto. Sui sistemi Debian questo elenco consiste nel gruppo sudo.

Si veda anche