Salta il menu
*Linux Guide - Comandi sudo

7 comandi sudo in Linux - Tips and Tricks

by SathiyaMoorthy

Usando il comando sudo, può eseguire solo comandi come root. In questo articolo, illustreremo come configurare l'ambiente sudo insieme ad alcuni esempi di comandi sudo, avvertenze e trucchi.

1. Configurare l'ambiente sudo in /etc/sudoers

Potete fornire i privilegi sudo a un utente singolo o ad un gruppo modificando il file /etc/sudoers.

1.1 Accesso sudo ad un utente

Per fornire l'accesso sudo ad un singolo utente, aggiungete la seguente riga al file /etc/sudoers.

sathiya ALL=(ALL) ALL

Nell'esempio qui sopra:
  • sathiya : nome dell'utente abilitato all'uso di sudo
  • ALL : consente l'accesso sudo da qualsiasi terminale (qualsiasi macchina)
  • (ALL) : consente il comando sudo in escuzione come utente qualsiasi
  • ALL : consente a tutti i comandi di essere eseguiti

1.2 Accesso sudo ad un gruppo

Per fornire l'accesso sudo ad un gruppo, aggiungete la seguente riga al file /etc/sudoers.

%programmers ALL=(ALL) ALL

Nell'esempio qui sopra:
  • programmers : nome del gruppo abilitato all'uso di sudo. Il nome del gruppo deve essere preceduto dal simbolo di percentuale.
  • ALL : consente l'accesso sudo da qualsiasi terminale (qualsiasi macchina)
  • (ALL) : consente il comando sudo in escuzione come utente qualsiasi
  • ALL : consente a tutti i comandi di essere eseguiti

Gli utenti di Ubuntu hanno già familiarità con il comando sudo, dato che useranno il comando sudo apt-get install per installare i pacchetti. Su Ubuntu, sudo è già configurato per il vostro nome utente, come mostrato sotto. Tutti gli utenti, insieme al gruppo admin, hanno accesso ad eseguire i comandi di root, usando sudo.

$ sudo cat /etc/sudoers
%admin ALL=(ALL) ALL

$ grep admin /etc/group
admin:x:115:sathiya

2. Eseguire un comando come superutente

Una volta che l'accesso sudo sia configurato per il vostro account, nel file /etc/sudoers, potete indicare qualsiasi comando da root come argomento per il comando sudo. Per esempio, il montaggio può essere eseguito solo da root. Ma un utente normale può applicare il montaggio usando sudo, come mostrato qui sotto.

$ sudo mount /dev/sda3 /mnt

Se eseguite sudo per la prima volta in una shell, vi verrà chiesta la password (la password dell'attuale utente) di default.

3. Dimenticato di usare Sudo in Vim? Niente paura. Salvate il file Trick in vim con sudo

Quando avete aperto un file che può essere salvato solo come utente root, usando vim (senza usare il comando sudo), potete fare come segue.

Per esempio, se volete modificare il file /etc/group che può essere salvato solo come utente root, tipicamente fate come segue. Quando inserite :w, nessun problema, funzionerà, dato che è stato aperto con il comando sudo.

$ sudo vim /etc/group
:w

Cosa succede se vi siete dimenticati di sudo, al momento di aprire il file /etc/group come visto sopra? In questo caso, invece di chiudere il documento (perdendo tutte le modifiche) ed eseguire vim con sudo, potete fare come segue.

$ vim /etc/group
:w !sudo tee %

":w !sudo tee %" salverà il file con i privilegi di root, anche se non avete usato sudo per aprirlo.

4. Dimenticato di dare sudo per un comando di root? Rifatelo usando !!

Se avete dimenticato di dare il comando sudo per un comando che richiede i privilegi di root, invece di digitare nuovamente il comando con sudo, potete semplicemente dare sudo !! come mostrato sotto.

$ head -n 4 /etc/sudoers
head: cannot open `/etc/sudoers' for reading: Permission denied

$ sudo !!
sudo head -n 4 /etc/sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#

5. Aprite la shell di root usando Sudo

Per aprire la shell di root dal vostro accfount di utente, fate come segue.

$ sudo bash

Una volta che siete entrati nella shell di root, potete eseguire qualsiasi comando di root senza dover digitare sudo ogni volta.

6. I comandi inclusi non funzionano con sudo

sudo invoca un eseguibile come un altro utente, quindi i comandi inclusi di bash, non funzioneranno. Vi daranno l'errore:

sudo command not found

Per esempio, umask è un comando incluso di bash, che non funzionerà quando usato insieme a sudo, come mostrato sotto.

$ sudo umask
sudo: umask: command not found

Rimedio: Per usare un comando incluso di bash in sudo, prima entrate nella shell di root, usando sudo bash poi eseguite il comando incluso di bash.

7. Visualizzare l'esecuzione di comandi sudo non autorizzati da auth.log

Quando un utente che non ha i permessi sudo prova ad eseguire un comando sudo, riceverà il seguente errore:

$ sudo ls /
[sudo] password for test:
raj is not in the sudoers file. This incident will be reported.

Ogni volta che questo avviene, verrà segnalato nel file /var/log/auth.log per l'amministratore di sistema, per visualizzare gli accessi sudo non autorizzati.

Sep 25 18:41:35 sathiya sudo: raj : user NOT in sudoers ; TTY=pts/4 ; PWD=/home/raj ; USER=root ; COMMAND=/bin/ls /

***

Indice | Torna in alto