Sudo (Italiano)

From ArchWiki
Revision as of 00:40, 11 May 2010 by Morbin (Talk | contribs) (Disable root login)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Sudo (Italiano)#)
Note: Questo articolo è in fase di traduzione. Seguite per ora le istruzioni della versione inglese.

Sudo (su "do") consente all'amministratore di sistema di delegare a certi utenti (o gruppi di utenti) il permesso e potere di eseguire alcuni, o tutti, i comandi in qualità di root, fornendo nel contempo traccia di tutti i comandi e le azioni eseguite.[1]

Logica di base

Sudo è un'alternativa sicura per il comando su tradizionale. Molto spesso l'utente utilizza su (super user) per ottenere i privilegi di root. In generale, si ritiene imprudente eseguire il login come root, "il superutente", per periodi di tempo prolungati. L'utente root gode di controllo completo e assoluto su tutto il sistema, ma a grande rischio! Alcuni semplici errori possono facilmente rendere un sistema inutilizzabile, e tutte le applicazioni in esecuzione con privilegi di root consentiranno un libero accesso all'intera struttura gerarchica del file system.

Sudo invece, concede dei privilegi temporanei per un singolo comando (sia come root che come altro utente), ristabilendo alla fine dell'operazione lo stato di utente normale, senza privilegi di root e rendendo di conseguenza, il sistema nuovamente "in salvo" da azioni e stati a rischio. Sudo fornisce inoltre, come livello sicurezza aggiuntivo, traccia di tutti i comandi eseguiti, come anche di ogni tentativo di accesso fallito.

Installazione

Per installare Sudo:

pacman -S sudo

In maniera predefinita, gli utenti non sono autorizzati a poter utilizzare sudo. Consultare #Configuration per ulteriori dettagli.

Utilizzo

Con sudo installato e configurato, gli utenti sono idonei a eseguire comandi con Template:Codeline per acquisire privilegi di superutente (o anche altri). Per esempio:

$ sudo pacman -Syu

Consultare sudo manual per maggiori informazioni.

Configurazione

Il file di configurazione di sudo è Template:Filename. Questo file non dovrebbe essere modificato direttamente! Gli utenti dovrebbero eseguire il comando Template:Codeline come root, che apre una copia temporanea del file di configurazione in $EDITOR. (Se non ci si sente a proprio agio con vi (default), utilizzare il per prima cosa il comando Template:Codeline)

# visudo

Dopo aver salvato il file, Template:Codeline eseguirà un doppio controllo alla ricerca di errori di sintassi prima di sovrascrivere il file di default Template:Filename. Questa funzionalità di sicurezza esiste, perchè sudo diverrebbe inutilizzabile nel caso di errori nel file di configurazione.

Prima di poter utilizzare il comando "sudo" per concedere privilegi di root all'utente, bisogna aggiungere la seguente riga:

USER_NAME   ALL=(ALL) ALL

Permette all'utente l'accesso sudo solamente dalla macchina locale:

USER_NAME   HOSTNAME=(ALL) ALL

Permette ai membri del gruppo wheel l'accesso sudo senza richiedere la password:

%wheel      ALL=(ALL) NOPASSWD: ALL

dove USER_NAME è il nome utente individuale.

Un dettagliato file d'esempio Template:Filename è reperibile su qui. Altrimenti, consultare sudoers manual per ulteriori informazioni.


Password timeout

Alcuni utenti potrebbero voler modificare il timeout predefinito prima che la password scada. È possibile farlo aggiungendo la riga seguente a Template:Filename (Template:Codeline) per esempio:

Defaults:USER_NAME timestamp_timeout=20

nel cui caso la password dell'utente USER_NAME scade se non usata per 20 minuti.

Tip: Per assicurarsi che sudo richieda sempre la password, impostare il timeout a zero.

Tips and tricks

Abilitare il completamento con TAB per gli utenti sudo

Il completamento con TAB, di default, non funzionerà quando un utente è stato aggiunto inizialmente al file dei sudoers. Ad esempio, normalmente, Marco deve soltanto digitare:

fir<TAB>

e la shell completerà il comando come segue:

firefox

Se, comunque, Marco fosse aggiunto al file dei sudoers e digitasse:

sudo fir<TAB>

la shell non farebbe niente.

Se si utilizza il completamento programmabile della bash, si devono decommentare le seguenti righe nel file /etc/bash_completion:

# user commands see only users
complete -u su usermod userdel passwd chage write chfn groups slay w
# group commands see only groups
[ -n "$bash205" ] && complete -g groupmod groupdel newgrp 2>/dev/null

Altrimenti aggiungere la seguente riga al proprio ~/.bashrc (solo se non si è modificato il file bash_completion perché sovrascrive le impostazioni per sudo):

complete -cf sudo

Variabili d'ambiente

Se ci si ritrova con molte variabili d'ambiente, o si esportano le impostazioni del proxy con export http_proxy="...", quando si usa sudo queste variabili non vengono accettate da root se non si esegue sudo con l'opzione Template:Codeline.

$ sudo -E pacman -Syu

Per questo motivo potrebbe essere utile aggiungere un alias in Template:Filename:

alias sudo="sudo -E"

Un'altra modo analogo è l'aggiunta in Template:Filename di:

Defaults !env_reset

Volendo solamente passare le variabili *_proxy, aggiungere il seguente:

Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"

Abilitare alias

Se si utilizzano vari alias, si noterà che non vengono accettati da root usando sudo. Tuttavia, vi è un modo semplice per farli funzionare. Basta aggiungere quanto segue a Template:Filename o Template:Filename:

alias sudo='sudo '

Insulti

È possibile configurare sudo per visualizzare degli "insulti intelligenti" quando viene immessa una password errata, al posto dell'output di default "wrong password". Trovare la linea di default in Template:Filename e aggiungere "insults", separandola con una virgola dalle voci esistenti. Il risultato dovrebbe essere simile a questo:

#Defaults specification
Defaults insults

Per fare una prova, scrivere Template:Codeline per terminare la sessione corrente e lasciare che sudo chieda nuovamente la password.

Password di root

Si può istruire sudo a richiedere la password di root invece di quella dell'utente normale aggiungendo "rootpw" alla linea di defaults in Template:Filename:

Defaults timestamp_timeout=0,rootpw

Disabilitare il login root

Warning: Arch Linux non è stato sviluppato per funzionare con l'account root disabilitato. Con questo metodo si rischiano possibili ed eventuali problemi.

Con sudo installato e configurato, qualcuno potrebbe voler disabilitare il login di root. Senza root, eventuali malintenzionati dovrebbero prima individuare un nome utente configurato come sudoer, e poi la password dell'utente.

Assicurarsi che l'utente sia correttamente configurato come sudoer prima di disabilitare l'account di root!

L'account può essere bloccato con Template:Codeline:

# passwd -l root

Un comando simile sblocca root.

$ sudo passwd -u root

In alternativa, modificare Template:Filename e sostituire la password di root criptata con "!":

root:!:12345::::::

Per abilitare il login di root di nuovo:

$ sudo passwd root

kdesu

kdesu può essere usato con KDE per lanciare applicazioni grafiche con privilegi di root. In maniera predefinita, è possibile che kdesu provi ad usare su anche se l'account di root è disabilitato. Fortunatamente si può istruire kdesu ad usare sudo invece di su. Creare o modificare il file Template:Filename:

[super-user-command]
super-user-command=sudo



Warning: DA QUI PARTE VECCHIA EVENTUALMENTE CANCELLABILE

Sommario

Per sintetizzare, le seguenti impostazioni soddisfano la maggior parte delle esigenze, dove USER_NAME è il nome utente dell'individuo:

1. pacman -S sudo
2. aggiungere "USER_NAME   ALL=(ALL) ALL" al file /etc/sudoers utilizzando il comando "visudo"
3. aggiungere "complete -cf sudo" al file /home/USER_NAME/.bashrc

Vedi anche