Il comando sudo consente agli utenti non root di eseguire altri comandi Linux che normalmente richiederebbero i privilegi di super utente, mentre il file sudoers indica al sistema come gestire il comando sudo. In questo tutorial, ti mostreremo tutte le basi del comando sudo e come modificare il file sudoers.
Capire Sudo
Per mostrare come funziona sudo, accedi prima al tuo VPS tramite SSH. In caso di problemi, dai un'occhiata al tutorial PuTTY.
Per impostazione predefinita, l'utente root non ha bisogno di utilizzare il prefisso sudo. Hanno già tutti i privilegi possibili. Nel frattempo, se un utente non root desidera aggiungere un altro utente, dovrebbe aggiungere il prefisso sudo al comando useradd, in questo modo:
sudo useradd edward
Se l'utente non utilizza il prefisso sudo, riceverà un Autorizzazione negata uscita.
Il file Sudoers
Il comando sudo viene configurato tramite un file che si trova in /etc/ chiamati sudoers .
Attraverso il comando sudo fornisci privilegi di livello amministrativo agli utenti regolari. Normalmente il primo utente che crei durante l'installazione di Ubuntu ha i diritti sudo. In un ambiente VPS che è l'utente root predefinito. Puoi configurare altri utenti in modo che possano anche eseguire il comando sudo. Questo può essere fatto modificando sudoer.
Sintassi del file Sudoers
Puoi aprire il file con il tuo editor di testo preferito. Useremo vi :
vi /etc/sudoers
Il nostro file VPS si presenta così:
Diamo un'occhiata ad alcuni dei formati e delle regole da seguire durante la modifica dei sudoer:
- Tutte le righe che iniziano con # sono commenti
- root TUTTI=(TUTTI:TUTTI) TUTTI – questa riga significa che l'utente root ha privilegi illimitati e può eseguire qualsiasi comando sul sistema
- %admin TUTTI=(TUTTI) TUTTI – il segno % specifica un gruppo. Chiunque nel gruppo admin ha gli stessi privilegi dell'utente root
- %sudo TUTTI=(TUTTI:TUTTI ) TUTTI – tutti gli utenti nel gruppo sudo hanno i privilegi per eseguire qualsiasi comando
Un'altra linea di interesse è #includedir /etc/sudoers.d, questo significa che possiamo aggiungere configurazioni al file sudoers.d e collegarlo qui.
Modifica del file Sudoers
Per modificare /etc/sudoers file, usa il seguente comando:
sudo visudo -f /etc/sudoers
Si consiglia di utilizzare visudo per modificare il file sudoers. Visudo fa in modo che sudoers venga modificato da un utente alla volta e fornisce i necessari controlli della sintassi.
Per vedere quali utenti sono nel gruppo sudo possiamo usare un comando grep:
grep ‘sudo’ /etc/group
Questo produrrà un elenco di nomi utente.
Per aggiungere un utente chiamato bill al gruppo sudo, utilizziamo adduser comando nella riga di comando, in questo modo:
adduser bill sudo
Se utilizziamo il comando grep per controllare chi è nel gruppo, vedremo la fattura del nome utente.
Se vuoi concedere a qualcuno i privilegi di root, aggiungilo a sudo.
Per rimuovere un utente da sudo:
deluser bill sudo
Il comando deluser rimuoverà Bill dal gruppo sudo.
Ora la fattura utente non può più eseguire azioni che richiedono privilegi sudo.
Utilizza il file Sudoers per concedere privilegi specifici
E se vogliamo che Bill sia in grado di eseguire solo tipi specifici di comandi con privilegi sudo, come il networking?
Per farlo creiamo un file di configurazione in /etc/sudoers.d/ chiamato rete.
Utilizzare il comando seguente per creare il file:
sudo visudo -f /etc/sudoers.d/networking
Aggiungi il seguente testo nel file:
Cmnd_Alias CAPTURE = /usr/sbin/tcpdump Cmnd_Alias SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd Cmnd_Alias NETALL = CAPTURE, SERVERS %netadmin ALL=NETALL
Quello che abbiamo fatto nel file sopra è creare un gruppo netadmin. Gli utenti nel gruppo netadmin possono eseguire i comandi specificati in NETALL. NETALL a sua volta include tutti i comandi sotto gli alias CAPTURE e SERVERS. Il comando tcpdump è sotto l'alias CAPTURE, ad esempio /usr/sbin/tcpdump.
Successivamente aggiungiamo la fattura utente al gruppo netadmin:
sudo adduser bill netadmin
Ora il conto utente sarà in grado di eseguire il comando tcpdump insieme ad altri comandi relativi alla rete.
Conclusione
Se stai lavorando con più utenti, comprendere il comando sudo e il file sudoers è un must assoluto. In questo tutorial, hai appreso tutte le nozioni di base per assumere il controllo dei privilegi del tuo sistema!