Linux - dal Terminale - Opzione sudo -
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 /
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 /
Commenti
Posta un commento
Ciao a tutti voi, sono a chiedervi se avete preferenze per Post di vostro interesse
in modo da dare a tutti voi che mi seguite un aiuto maggiore, grazie per la vostra disponibilità.