Differences between revisions 1 and 25 (spanning 24 versions)
Revision 1 as of 2010-09-15 13:37:32
Size: 5784
Editor: ?skizzhg
Comment:
Revision 25 as of 2016-09-14 22:17:35
Size: 10964
Editor: Anson Nozze
Comment: Errore di battitura.
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
||<tablestyle="width: 100%;" style="border: 0px hidden">~-Translation(s): [[sudo|English]] - [[it/sudo|Italiano]]-~||<style="text-align: right;border: 0px hidden"> (!) [[/Discussion|Discussion]]|| ~-[[DebianWiki/EditorGuide#translation|Traduzioni]]: [[ar/sudo|العربية]] - [[sudo|English]] - [[es/sudo|Español]] - [[fr/sudo|Français]] - Italiano - [[ru/sudo|Русский]]-~
Line 4: Line 4:
[[it/root|root]] > sudo [[it/root|Root]] > sudo
Line 6: Line 6:
~+Sudo+~ è un programma progettato per far sì che gli amministratori di sistema permettano ad alcuni utenti di eseguire certi comandi come [[it/root|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.

{{{{#!wiki tip
== 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 di default (a differenza di alcune altre distribuzioni).

'''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.
 * 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 [[it/DebianTesting|Debian Testing]] (Squeeze): verrà introdotto uno strumento simile, [[it/PolicyKit|PolicyKit]], mirato alle necessità dei computer fissi e portatili).
}}}}
~+Sudo+~ (a volte considerato l'abbreviazione di '''S'''uper-'''u'''ser '''do''') è un programma progettato per far sì che gli amministratori di sistema permettano ad alcuni utenti di eseguire certi comandi come [[it/root|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 chi ha usato un dato comando e quando.
Line 20: Line 9:
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 (p.e. non privilegiati), 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.
Usare {{{sudo}}} è meglio (più sicuro) che aprire una sessione come root per svariati motivi, inclusi:
 * non è necessario che alcuno conosca la password di root ({{{sudo}}} richiede la password dell'utente attuale); si possono dare privilegi extra a utenti specifici temporaneamente e poi rimuoverli senza dover cambiare password;
 * è facile eseguire soltanto i comandi che richiedono privilegi speciali come root, usando {{{sudo}}}; per tutto il resto del tempo si lavora come utente non privilegiato, il che riduce i danni che possono essere causati da sbagli;
 * verifica/registrazione: quando un comando è eseguito con sudo il nome dell'utente e il comando sono registrati.
Line 25: Line 14:
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.

== Utenti e sudo ==

Affinché un utente possa eseguire `sudo`, deve appartenere al gruppo `sudo`.
<<Anchor(Verifying_sudo_membership)>>
=== Verificare l'appartenenza a sudo ===

Una volta che l'utente ha fatto il login, può verificare se appartiene o meno al gruppo `sudo` usando il comando {{{id}}} o {{{groups}}}. Ad esempio, un utente con ID "pippo" dovrebbe vedere l'output di

 {{{#!plain
$ groups
}}}

come

 {{{#!plain
pippo sudo
}}}

Se `sudo` non è presente nell'output, l'utente non appartiene a quel gruppo. In modo simile l'output più complesso e variabile del comando `id` dovrebbe avere un aspetto simile a

 {{{#!plain
uid=1001(pippo) gid=1001(pippo) groups=1001(pippo),27(sudo)
}}}

==== Aggiungere un utente esistente dalla riga di comando ====

Per aggiungere un utente esistente con ID "pippo" al gruppo "sudo":

 {{{#!plain
$ sudo adduser pippo sudo
}}}

In alternativa, si può prima diventare root (ad esempio con `sudo su -`) e poi eseguire lo stesso comando senza il prefisso `sudo`:

 {{{#!plain
# adduser pippo
# adduser pippo sudo
}}}

Dopo essere stato aggiunto ad un nuovo gruppo, l'utente deve fare il logout e nuovamente il login affinché la modifica abbia effetto. I gruppi vengono assegnati all'utente solamente al momento del login. Una comune fonte di confusione è il fatto che le persone si aggiungono ad un gruppo ma non fanno il logout e poi nuovamente il login, e poi hanno problemi perché non sono stati assegnati al gruppo; assicurarsi di [[#Verifying_sudo_membership|verificare l'appartenenza al gruppo]].

<<Anchor(Creating users with sudo)>>
=== Creazione di utenti con sudo ===

Si possono anche creare nuovi utenti con appartenenza al gruppo `sudo`:

<<Anchor(Creating new user while installing OS)>>
==== Creazione di un nuovo utente durante l'installazione del SO ====

A partire da [[it/DebianSqueeze|Debian Squeeze]], se si richiede il task Desktop durante l'installazione, questo richiamerà {{{sudo}}} con una configurazione predefinita che automaticamente garantisce i diritti per usare sudo a tutti i membri del gruppo '''sudo'''. A seconda di quali account utente si impostano durante l'installazione iniziale, è comunque possibile che il proprio account non sia stato aggiunto a quel gruppo; assicurarsi di [[#Verifying_sudo_membership|verificare l'appartenenza al gruppo]] dopo aver fatto il login come l'utente installato.

<<Anchor(Creating new user from commandline)>>
==== Creazione di un nuovo utente dalla riga di comando ====

Un utente che ha già `sudo` può creare dalla riga di comando un altro utente (ad esempio con ID "pippo") che appartiene al gruppo `sudo`:

 {{{#!plain
$ sudo adduser pippo
$ sudo adduser pippo sudo
}}}

(oppure diventare prima root, come nella sezione precedente). Chi ha scritto questa sezione non è a conoscenza di un modo per ottenere questo risultato usando un unico comando (a parte concatenare i due comandi suddetti con `;` che non è la stessa cosa).

Si deve poi fare il login come il nuovo utente e [[#Verifying_sudo_membership|verificare l'appartenenza al gruppo]].
Line 39: Line 93:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Line 46: Line 101:
Cmnd_Alias SHUTDOWN = /sbin/shutdown, /sbin/reboot, /sbin/halt Cmnd_Alias SHUTDOWN = /sbin/reboot, /sbin/poweroff
Line 54: Line 109:
# Users in the group wheel can execute any command impersonating any user.
#%wheel
ALL= ALL
# Allow members of group sudo to execute any command
%sudo
ALL=(ALL:ALL) ALL
Line 59: Line 114:

#includedir /etc/sudoers.d
Line 61: Line 118:
== Problemi e soluzioni == == Problemi e suggerimenti ==
Line 63: Line 120:
=== Spiacente, all'utente jdoe non è consentito eseguire ... === === PATH not impostato ===

Un errore tipico che si verifica usando sudo per installare un pacchetto è:

{{{
dpkg: attenzione: 'ldconfig' non è stato trovato nella variabile PATH o non è un eseguibile.
dpkg: attenzione: 'start-stop-daemon' non è stato trovato nella variabile PATH o non è un eseguibile.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
}}}

Il file /etc/sudoers nel pacchetto contiene questa riga:

{{{
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
}}}

Le versioni precedenti non la includevano. Se si ha un file /etc/sudoers modificato localmente (questo è il caso della maggior parte di persone) e poi si aggiorna mantenendo la propria versione locale modificata, allora il file mancherà di questa riga necessaria. Non scavalcherà più l'impostazione del PATH quando si usa sudo; ciò con ogni propabibilità avrà come risultato un PATH non impostato in modo corretto e che non include le directory di sistema. La soluzione è quella di fondere le modifiche locali nel nuovo file /etc/sudoers del pacchetto, oppure di mettere le modifiche locali nella nuova posizione /etc/sudoers.d/ in un file con un nome univoco come {{{/etc/sudoers.d/local-sudoers}}}. Per i dettagli vedere il bug Debian DebianBug:639841.

=== Spiacente, all'utente mario non è consentito eseguire ... ===
Line 66: Line 142:
$sudo test $ sudo test
Line 68: Line 144:
Ci auguriamo tu abbia ricevuto la notifica dall'amministratore locale di sistema. Che si riduce solitamente a queste tre cose: We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
Line 70: Line 147:
    #1) Rispetta la privacy altrui.
    #2) Pensa prima di digitare.
    #3) Da grandi poteri derivano grandi responsabilità.
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
Line 74: Line 151:
[sudo] password for jdoe:
Spiacente, all'utente jdoe non è consentito eseguire '/usr/bin/test' come root su localhost.
[sudo] password for mario:
Sorry, user mario is not allowed to execute '/usr/bin/test' as root on localhost.
Line 78: Line 155:
Di solito questo messaggio significa che l'utente non è autorizzato a eseguire l'operazione. Questo messaggio significa esattamente ciò che dice: l'utente che si sta usando non ha il permesso di eseguire il comando specificato sulla macchina. Una ragione possibile che può indurre in confusione è il fatto che l'amministratore ha appena aggiunto mario al gruppo privilegiato, ma si sta usando sempre un accesso alla macchina vecchio che non ha le nuove informazioni sui gruppi e perciò non ha i nuovi permessi sudo. A coloro che si trovano in questa situazione viene solitamente consigliato di fare un logout e poi nuovamente il login, anche se a volte la cosa si può risolvere facendo solamente un nuovo "login a caldo" con {{{su - $USER}}}

=== La direttiva include ===

Il file {{{/etc/sudoers}}} standard in Wheezy, nella versione 1.8.2-1, termina con la riga:

 {{{#!plain
 #includedir /etc/sudoers.d
}}}

Questo rende possibile ad altri pacchetti fornire pezzetti di configurazione in {{{/etc/sudoers.d/<nomepacchetto>}}}, che modificano la configurazione di {{{sudo}}}. Può sembrare che sia necessario modificare la riga eliminando il carattere "#" iniziale (detto anche cancelletto), ma non è così: il carattere "#" fa parte della direttiva!
Line 81: Line 168:
Sì, il file {{{/etc/sudoers}}} è impostato in sola lettura, anche per root! Sì, il file {{{/etc/sudoers}}} è intenzionalmente impostato in sola lettura, anche per root!
Line 83: Line 170:
Questo perché si __deve__ usare il comando {{{visudo}}} per modificare {{{/etc/sudoers}}}. La spiegazione solitamente fornita è che questa impostazione assicura che gli amministratori modifichino il file solamente usando il comando {{{visudo}}}. Tuttavia, questa teoria è un po' zoppicante. Il fatto di avere permessi 0440 non impedisce affatto di fare {{{sudo nano /etc/sudoers}}}: la maggior parte degli editor di testo permette di modificare file senza lamentarsi del fatto che sia in sola lettura. Inoltre, se si danneggia {{{/etc/sudoers}}}, la soluzione è semplice quanto eseguire {{{su -c visudo}}}, che è nulla in confronto al tipo di procedura di recupero che si deve fare se si danneggia qualcosa come {{{/etc/inittab}}} (permessi 0644). Perciò, se c'è un buon motivo per questi permessi insoliti, questo rimane un mistero: suggerimenti sono i benvenuti.
Line 85: Line 172:
=== CVE-2005-4158 === === Directory HOME (e impostazioni di profilo) sbagliate ===
Line 87: Line 174:
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. Se si hanno problemi quando si usa {{{sudo}}} nella propria shell, e la propria directory $HOME (e le impostazioni di profilo) non si comporta come atteso perché la nuova directory HOME è {{{/root}}}, è bene sapere che la configurazione predefinita di {{{sudo}}} in Squeeze reimposta tutte le variabili d'ambiente. Per ripristinare il vecchio comportamento per cui preservava la variabile d'ambiente $HOME dell'utente, si possono aggiungere le seguenti righe al proprio file di configurazione {{{/etc/sudoers}}}:
Line 89: Line 176:
 sudo (1.6.8p7-1.3) stable-security; urgency=high ~-{{{#!plain
Defaults env_keep += HOME
}}}-~
Line 91: Line 180:
  * 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]
=== Richiedere password di root ===
Line 94: Line 182:
Come risultato, a meno che il file sudoers non venga modificato per contenere '''env_reset predefiniti''', si possono verificare problemi come i seguenti: Se per l'uso di sudo si desidera richiedere la password di root piuttosto che la password utente, aggiungere la riga:
Line 96: Line 184:
 * 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
~-{{{#!plain
Defaults rootpw
}}}-~
Line 100: Line 188:
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: DebianBug: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'''.
Per maggiori informazioni leggere l'[[http://www.sudo.ws/sudo/stable.html#1.7.4|elenco originale dei cambiamenti per la versione 1.7.4]].
Line 109: Line 191:
 * Manpages: [[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)]], [[DebianMan:8/sudoreplay|sudoreplay(8)]]

Traduzioni: العربية - English - Español - Français - Italiano - Русский


Root > sudo


Sudo (a volte considerato l'abbreviazione di Super-user do) è 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 chi ha usato un dato comando e quando.

Perché sudo

Usare sudo è meglio (più sicuro) che aprire una sessione come root per svariati motivi, inclusi:

  • non è necessario che alcuno conosca la password di root (sudo richiede la password dell'utente attuale); si possono dare privilegi extra a utenti specifici temporaneamente e poi rimuoverli senza dover cambiare password;

  • è facile eseguire soltanto i comandi che richiedono privilegi speciali come root, usando sudo; per tutto il resto del tempo si lavora come utente non privilegiato, il che riduce i danni che possono essere causati da sbagli;

  • 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.

Utenti e sudo

Affinché un utente possa eseguire sudo, deve appartenere al gruppo sudo.

Verificare l'appartenenza a sudo

Una volta che l'utente ha fatto il login, può verificare se appartiene o meno al gruppo sudo usando il comando id o groups. Ad esempio, un utente con ID "pippo" dovrebbe vedere l'output di

  • $ groups

come

  • pippo sudo

Se sudo non è presente nell'output, l'utente non appartiene a quel gruppo. In modo simile l'output più complesso e variabile del comando id dovrebbe avere un aspetto simile a

  • uid=1001(pippo) gid=1001(pippo) groups=1001(pippo),27(sudo)

Aggiungere un utente esistente dalla riga di comando

Per aggiungere un utente esistente con ID "pippo" al gruppo "sudo":

  • $ sudo adduser pippo sudo

In alternativa, si può prima diventare root (ad esempio con sudo su -) e poi eseguire lo stesso comando senza il prefisso sudo:

  • # adduser pippo
    # adduser pippo sudo

Dopo essere stato aggiunto ad un nuovo gruppo, l'utente deve fare il logout e nuovamente il login affinché la modifica abbia effetto. I gruppi vengono assegnati all'utente solamente al momento del login. Una comune fonte di confusione è il fatto che le persone si aggiungono ad un gruppo ma non fanno il logout e poi nuovamente il login, e poi hanno problemi perché non sono stati assegnati al gruppo; assicurarsi di verificare l'appartenenza al gruppo.

Creazione di utenti con sudo

Si possono anche creare nuovi utenti con appartenenza al gruppo sudo:

Creazione di un nuovo utente durante l'installazione del SO

A partire da Debian Squeeze, se si richiede il task Desktop durante l'installazione, questo richiamerà sudo con una configurazione predefinita che automaticamente garantisce i diritti per usare sudo a tutti i membri del gruppo sudo. A seconda di quali account utente si impostano durante l'installazione iniziale, è comunque possibile che il proprio account non sia stato aggiunto a quel gruppo; assicurarsi di verificare l'appartenenza al gruppo dopo aver fatto il login come l'utente installato.

Creazione di un nuovo utente dalla riga di comando

Un utente che ha già sudo può creare dalla riga di comando un altro utente (ad esempio con ID "pippo") che appartiene al gruppo sudo:

  • $ sudo adduser pippo
    $ sudo adduser pippo sudo

(oppure diventare prima root, come nella sezione precedente). Chi ha scritto questa sezione non è a conoscenza di un modo per ottenere questo risultato usando un unico comando (a parte concatenare i due comandi suddetti con ; che non è la stessa cosa).

Si deve poi fare il login come il nuovo utente e verificare l'appartenenza al gruppo.

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
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification
User_Alias      MYADMINS = jdoe

# User alias specification

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/reboot, /sbin/poweroff
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

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

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

#includedir /etc/sudoers.d

Problemi e suggerimenti

PATH not impostato

Un errore tipico che si verifica usando sudo per installare un pacchetto è:

dpkg: attenzione: 'ldconfig' non è stato trovato nella variabile PATH o non è un eseguibile.
dpkg: attenzione: 'start-stop-daemon' non è stato trovato nella variabile PATH o non è un eseguibile.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.

Il file /etc/sudoers nel pacchetto contiene questa riga:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Le versioni precedenti non la includevano. Se si ha un file /etc/sudoers modificato localmente (questo è il caso della maggior parte di persone) e poi si aggiorna mantenendo la propria versione locale modificata, allora il file mancherà di questa riga necessaria. Non scavalcherà più l'impostazione del PATH quando si usa sudo; ciò con ogni propabibilità avrà come risultato un PATH non impostato in modo corretto e che non include le directory di sistema. La soluzione è quella di fondere le modifiche locali nel nuovo file /etc/sudoers del pacchetto, oppure di mettere le modifiche locali nella nuova posizione /etc/sudoers.d/ in un file con un nome univoco come /etc/sudoers.d/local-sudoers. Per i dettagli vedere il bug Debian 639841.

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

Una sessione tipica si presenta così:

  • $ sudo test
    
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
        #1) Respect the privacy of others.
        #2) Think before you type.
        #3) With great power comes great responsibility.
    
    [sudo] password for mario: 
    Sorry, user mario is not allowed to execute '/usr/bin/test' as root on localhost.

Questo messaggio significa esattamente ciò che dice: l'utente che si sta usando non ha il permesso di eseguire il comando specificato sulla macchina. Una ragione possibile che può indurre in confusione è il fatto che l'amministratore ha appena aggiunto mario al gruppo privilegiato, ma si sta usando sempre un accesso alla macchina vecchio che non ha le nuove informazioni sui gruppi e perciò non ha i nuovi permessi sudo. A coloro che si trovano in questa situazione viene solitamente consigliato di fare un logout e poi nuovamente il login, anche se a volte la cosa si può risolvere facendo solamente un nuovo "login a caldo" con su - $USER

La direttiva include

Il file /etc/sudoers standard in Wheezy, nella versione 1.8.2-1, termina con la riga:

  •  #includedir /etc/sudoers.d

Questo rende possibile ad altri pacchetti fornire pezzetti di configurazione in /etc/sudoers.d/<nomepacchetto>, che modificano la configurazione di sudo. Può sembrare che sia necessario modificare la riga eliminando il carattere "#" iniziale (detto anche cancelletto), ma non è così: il carattere "#" fa parte della direttiva!

sudoers è in sola lettura

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

La spiegazione solitamente fornita è che questa impostazione assicura che gli amministratori modifichino il file solamente usando il comando visudo. Tuttavia, questa teoria è un po' zoppicante. Il fatto di avere permessi 0440 non impedisce affatto di fare sudo nano /etc/sudoers: la maggior parte degli editor di testo permette di modificare file senza lamentarsi del fatto che sia in sola lettura. Inoltre, se si danneggia /etc/sudoers, la soluzione è semplice quanto eseguire su -c visudo, che è nulla in confronto al tipo di procedura di recupero che si deve fare se si danneggia qualcosa come /etc/inittab (permessi 0644). Perciò, se c'è un buon motivo per questi permessi insoliti, questo rimane un mistero: suggerimenti sono i benvenuti.

Directory HOME (e impostazioni di profilo) sbagliate

Se si hanno problemi quando si usa sudo nella propria shell, e la propria directory $HOME (e le impostazioni di profilo) non si comporta come atteso perché la nuova directory HOME è /root, è bene sapere che la configurazione predefinita di sudo in Squeeze reimposta tutte le variabili d'ambiente. Per ripristinare il vecchio comportamento per cui preservava la variabile d'ambiente $HOME dell'utente, si possono aggiungere le seguenti righe al proprio file di configurazione /etc/sudoers:

Defaults env_keep += HOME

Richiedere password di root

Se per l'uso di sudo si desidera richiedere la password di root piuttosto che la password utente, aggiungere la riga:

Defaults   rootpw

Per maggiori informazioni leggere l'elenco originale dei cambiamenti per la versione 1.7.4.

Si veda anche