Come abilitare sudo con lo stesso comportamento di Ubuntu Desktop, ad altre distribuzioni Linux.

SupermanULogo

Ubuntu linux, come molti sapranno, è stato “ritoccato” in modo tale che tutte le volte che viene richiesta una password amministrativa (come utente “root”), l’utente normale, ossia non privilegiato, tramite comando ‘sudo‘ può, inserendo la sua password personale, acquisire temporaneamente i privilegi di root per eseguire tale comando (sempre che sia stato abilitato a farlo!). Non solo: anche tutte le finestre di dialogo grafiche (sia dell’ambiente gnome e affini, che di Kde) che richiedono l’introduzione di una password per verificare i diritti di root a fronte di un’operazione di sistema (es. aggiunta di un utente, installazione di un aggiornamento, ecc.), si comporteranno alla stessa maniera, ovvero chiederanno la password dell’utente, e non quella di root.

Tant’è che nei sistemi ubuntu desktop, durante l’installazione standard, di default la password di root non viene nemmeno richiesta, in quanto verrà creato un utente iniziale che avrà già l’autorizzazione ad eseguire comandi amministrativi prefissandoli con il comando sudo.

Per applicare lo stesso funzionamento ad altre distribuzioni (ad esempio Debian), seguire i seguenti passi:

  1. aptitude install sudo
  2. su root (al momento..)
  3. visudo
    Inserire una riga nel file che assomiglia alla seguente:

    nome_utente ALL=(ALL:ALL) ALL

    sostituendo ovviamente ‘nome_utente‘ al login name del vostro utente.
    Uscire salvando il file.

  4. Al prossimo accesso, l’utente ‘nome_utente‘ avrà la possibilità, ad esempio, di eseguire il comando:
    sudo ls -la /root
    Dopo aver introdotto la sua password personale, se tutto è andato bene, gli verrà visualizzato il contenuto della cartella home dell’utente root. (In caso contrario, uscirebbe un errore, in quanto solo root, di norma, può vedere quella cartella)

Tuttavia, alla procedura descritta sopra, a mio avviso è preferibile un “ritocco”.  Per due motivi.  Il primo: avendo più utenti di sistema e qualora debbano eseguire comandi di root, sarei costretto per ciascuno di loro, inserire una riga nel file /etc/sudoers (o tramite comando ‘visudo‘), la linea che lo abilita. Secondo: In genere Debian (ma anche altre distro) ha già un gruppo definito appunto “sudo“, che è già presente a sistema, ed è già presente nella configurazione di /etc/sudoers a concedere i permessi amministrativi in caso di esecuzione di comando ‘sudo‘ a tutti i membri del gruppo stesso. Infatti se si guarda nel file visualizzato da ‘visudo‘, dovrebbe già esistere una riga simile alla seguente (se non dovesse esistere, aggiungerla):

%sudo ALL=(ALL:ALL) ALL

(Nota: il carattere ‘%’ prima del nome, significa che la direttiva si riferisce ad un gruppo, e non ad un utente).

A questo punto, è sufficiente inserire l’utente come membro del gruppo “sudo” con il seguente comando:

adduser nome_utente sudo

A quel punto, l’utente ‘nome_utente‘, potrà eseguire comandi come utente root prefissandoli con “sudo”.

Es.

sudo apt-get update


Nota: la prima volta che l’utente usa il comando “sudo”, riceverà questo output:

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 nome_utente:


O il corrispondente messaggio in italiano.

Questa lezione dovrebbe essere stata impartita dall'amministratore di sistema locale. Solitamente equivale a:
#1) Rispettare la privacy degli altri
#2) Pensare prima di digitare
#3) Da grandi poteri derivano grandi responsabilità
[sudo] password for nome_utente:

Dal successivo utilizzo del comando, questo messaggio non verrà più visualizzato.


Comandi grafici di richiesta autorizzazioni amministrative, in ambiente Gnome e KDE.

Quanto detto sopra, imposta il sistema come desiderato utilizzando il comando sudo da linea di comando (CLI). In molte circostanze, invece, quanto un’applicazione grafica ci richiede i permessi di root tramite una dialog box via GUI, o in ambiente Gnome o Kde, il comportamento spesso è ancora quello di richiederci la password di root, e NON la nostra da normale utente.

C’è stata un po’ di confusione, nel tempo, nei vari front-end grafici come kdesu e kdesudo per KDE o gksu e gksudo per l’ambiente Gnome e affini.

Riguardo a KDE, ultimamente dovrebbero essere stati sistemati i problemi in quanto kdesu nella maggior parte dei casi, altro non è che un link simbolico a kdesudo. In altre parole, di default i front-end di KDE, all’occorrenza dovrebbe chiedere in ogni caso la password dell’utente e non quella di root. (Se così non fosse, controllare nel percorso di kdesu se è un link simbolico di kdesudo. Se cosi non fosse, rimuovere o rinominare kdesu e lanciare, da root, il seguente comando: ln -s /usr/bin/kdesudo /usr/bin/kdesu).

Diverso è invece il discorso per i front-end di Gnome: nelle ultime versioni viene rilasciato solo gksu e non gksudo, e gksudo è un link simbolico verso gksu (praticamente il contrario di quanto avviene in KDE!!). Quindi per dirgli di comportarsi come sudo (e non come su), occorre andare nei registri di Gnome tramite il comando ‘gconftool‘ (o se si preferisce, tramite front-end grafico ‘gconf-editor’), ed impartire il seguente comando:

gconftool -s /apps/gksu/sudo-mode --type=bool true

(o, se si adopera gconf-editor, scorrere nella stessa voce dell’albero apps->gksu, ed impostare il valore del registro sudo-mode a 1)

Da questo punto in avanti, anche il front-end grafico di Gnome chiederà la password dell’utente (e non più quella di root), quando richiesto, per svolgere compiti amministrativi.

Mi auguro che questo articolo possa essere di aiuto a qualcuno.

Cordialmente,
Gabriele

 

 

Leave a Reply

Your email address will not be published.