Come rivedere l'utilizzo del comando sudo su Linux

Pubblicato: 2022-08-24
Laptop Linux che mostra un prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Il comando sudo fornisce a un utente superutente o poteri di root. Senza dubbio hai pronunciato loro il discorso "da grande potere derivano grandi responsabilità". Ecco come verificare se hanno ascoltato o meno.

Il comando sudo

Il comando sudo sta per "substitute user do". Consente a una persona autorizzata di eseguire un comando come se fosse un altro utente. Può accettare parametri della riga di comando, uno dei quali è il nome dell'utente con cui si desidera eseguire il comando. Il modo più comune in cui viene utilizzato sudo è omettere le opzioni della riga di comando e utilizzare l'azione predefinita. Questo esegue efficacemente il comando come utente root.

Per utilizzare sudo in questo modo è necessaria un'autorizzazione speciale. Solo i privilegiati possono usare sudo . Quando installi una moderna distribuzione Linux, ti viene richiesto di impostare una password di root che puoi usare con sudo . L'autorizzazione a farlo è concessa all'utente normale creato durante l'installazione. Questo è il modo preferito per gestire l'accesso alle capacità dell'utente root. Il vecchio modo era creare un utente root e accedere come loro per amministrare il tuo sistema.

Questo era uno scenario pericoloso. Era facile dimenticare, o essere troppo pigri per, disconnettersi e riconnettersi come utente normale quando non erano più necessari i privilegi di root. Tutti gli errori che hai commesso nella finestra del terminale come root verrebbero eseguiti, non importa quanto drastici. Le cose che sarebbero bloccate dalla shell se un utente normale provasse a eseguirle verrebbero eseguite senza domande quando root le richiedeva. Anche l'utilizzo dell'account root invece di un account normale rappresenta un rischio per la sicurezza.

Come controllare sudo Access su Linux
CORRELATI Come controllare sudo Access su Linux

Usare sudo focalizza la mente. Stai entrando nelle stesse acque pericolose, ma stai scegliendo consapevolmente di farlo e, si spera, ti stai prendendo molta cura. Invochi il tuo stato di superutente solo quando devi fare qualcosa che ne ha bisogno.

Se apri l'accesso come root ad altri utenti, vuoi sapere che si stanno prendendo cura di loro tanto quanto te. Non vuoi che eseguano comandi in modo sconsiderato o speculativo. La salute e il benessere della tua installazione Linux dipendono dal comportamento rispettoso e responsabile degli utenti privilegiati.

Ecco diversi modi per monitorare il loro utilizzo di root.

Il file auth.log

Alcune distribuzioni mantengono un registro di autenticazione, in un file chiamato "auth.log". Con l'avvento e la rapida diffusione di systemd , la necessità del file "auth.log" è stata rimossa. Il demone systemd-journal consolida i log di sistema in un nuovo formato binario e journalctl fornisce un modo per esaminare o interrogare i log.

Se hai un file "auth.log" sul tuo computer Linux, sarà probabilmente nella directory "/var/log/", sebbene su alcune distribuzioni il nome del file e il percorso siano "/var/log/audit/audit .tronco d'albero."

Puoi aprire il file in less in questo modo. Ricorda di modificare il percorso e il nome del file in base alla tua distribuzione e preparati nel caso in cui il tuo Linux non crei nemmeno un file di autenticazione.

Questo comando ha funzionato su Ubuntu 22.04.

 meno /var/log/auth.log 

Osservando il file /var/log/auth.log con less

Il file di registro viene aperto e puoi scorrere il file o utilizzare le funzionalità di ricerca integrate in less per cercare "sudo".

Il contenuto del file /var/log/auth.log visualizzato in less

Anche utilizzando le funzioni di ricerca di less , può essere necessario del tempo per individuare le voci sudo che ti interessano.

Diciamo che vogliamo vedere per cosa ha usato sudo un utente chiamato mary . Possiamo cercare nel file di registro con grep le righe con "sudo" al loro interno, quindi inviare nuovamente l'output tramite grep e cercare le righe con "mary" al loro interno.

Nota sudo prima di grep e prima del nome del file di registro.

 sudo grep sudo /var/log/auth.log | grep "maria" 

Usando grep per filtrare le voci che menzionano mary e sudo

Questo ci dà linee che contengono "sudo" e "mary".

Possiamo vedere che l'utente mary ha ottenuto i privilegi sudo alle 15:25 e alle 15:27 sta aprendo il file fstab in un editor. Questo è il tipo di attività che merita sicuramente un'immersione più profonda, a cominciare da una chat con l'utente.

Usando journalctl

Il metodo preferito sulle distribuzioni Linux basate su systmd consiste nell'usare il comando journalctl per rivedere i log di sistema.

Se passiamo il nome di un programma a journalctl , cercherà nei file di registro le voci che contengono riferimenti a quel programma. Poiché sudo è un binario situato in "/usr/bin/sudo", possiamo passarlo a journactl . L'opzione -e (fine pager) dice a journalctl di aprire il pager di file predefinito. Di solito questo sarà less . Il display scorre automaticamente verso il basso per mostrare le voci più recenti.

 sudo journalctl -e /usr/bin/sudo 

Utilizzo di journalctl per cercare voci che menzionano sudo

Le voci di registro che presentano sudo sono elencate in less.

journalctl che mostra le voci che contengono sudo nel visualizzatore di file less

Usa il tasto "Freccia destra" per scorrere verso destra per vedere il comando che è stato utilizzato con ciascuna delle invocazioni di sudo . (Oppure allunga la finestra del terminale in modo che sia più ampia.)

Scorrendo lateralmente per vedere i comandi utilizzati con sudo

E poiché l'output viene visualizzato in less , puoi cercare testo come nomi di comandi, nomi utente e timestamp.

CORRELATI: Come utilizzare journalctl per leggere i log di sistema Linux

Utilizzando l'utilità dei registri di GNOME

Gli ambienti desktop grafici in genere includono un mezzo per la revisione dei registri. Esamineremo l'utilità dei registri di GNOME. Per accedere all'utilità dei registri, premere il tasto "Super" a sinistra della "Barra spaziatrice".

Digita "registri" nel campo di ricerca. Viene visualizzata l'icona "Registri".

Fare clic sull'icona per avviare l'applicazione "Registri".

L'applicazione GNOME Logs

Facendo clic sulle categorie nella barra laterale si filtreranno i messaggi di registro in base al tipo di messaggio. Per effettuare selezioni più dettagliate, fai clic sulla categoria "Tutto" nella barra laterale, quindi fai clic sull'icona della lente d'ingrandimento sulla barra degli strumenti. Inserisci un testo di ricerca. Cercheremo "sudo".

Ricerca di voci che contengono sudo nell'applicazione GNOME Logs

L'elenco di eventi viene filtrato per visualizzare solo gli eventi correlati al comando sudo . Un piccolo blocco grigio alla fine di ogni riga contiene il numero di voci in quella sessione di eventi. Fare clic su una riga per espanderla.

Il blocco grigio contenente il numero di voci in una sessione sudo

Abbiamo fatto clic sulla riga superiore per vedere i dettagli delle 24 voci in quella sessione.

I dettagli degli eventi mostrati in una vista espansa

Con un piccolo scorrimento, possiamo vedere gli stessi eventi che abbiamo visto quando abbiamo usato il comando journalctl . La sessione di modifica inspiegabile dell'utente mary sul file fstab viene trovata rapidamente. Avremmo potuto cercare "mary", ma ciò includerebbe voci diverse dal suo uso di sudo .

Non tutti hanno bisogno dell'accesso root

Laddove esiste un requisito genuino e ragionevole, può avere senso concedere privilegi sudo ad altri utenti. Allo stesso modo, ha senso solo controllare il loro uso - o abuso - di questi poteri, specialmente subito dopo che gli sono stati conferiti.