Ricerca nel sito web

Differenza tra su e sudo e come configurare sudo in Linux


Il sistema Linux è molto più sicuro di qualsiasi suo equivalente. Uno dei modi per implementare la sicurezza in Linux è la politica di gestione degli utenti e l'autorizzazione dell'utente e gli utenti normali non sono autorizzati a eseguire alcuna operazione di sistema.

Se un utente normale ha bisogno di eseguire modifiche a livello di sistema, deve utilizzare il comando "su" o "sudo".

NOTA – Questo articolo è più applicabile alle distribuzioni basate su Ubuntu, ma applicabile anche alla maggior parte dei popolari Linux distribuzioni.

‘su’ Vs ‘sudo’

'su' ti obbliga a condividere la tua password root con altri utenti mentre 'sudo' rende possibile l'esecuzione comandi di sistema senza password root. 'sudo' ti consente di utilizzare la tua password per eseguire comandi di sistema, ovvero delegare la responsabilità del sistema senza password root.

Cos'è "sudo"?

'sudo' è un setuid binario root, che esegue i comandi root per conto degli utenti autorizzati e gli utenti devono inserire la propria password per eseguire comando di sistema seguito da "sudo".

Chi può eseguire "sudo"?

Possiamo eseguire "/usr/sbin/visudo" per aggiungere/rimuovere l'elenco degli utenti che possono eseguire "sudo".

sudo /usr/sbin/visudo

Una schermata del file "/usr/sbin/visudo" assomiglia a questa:

Per impostazione predefinita, l'elenco sudo assomiglia alla stringa seguente:

root ALL=(ALL) ALL

Nota: devi essere root per modificare /usr/sbin/visudo file.

Concessione dell'accesso sudo

In molte situazioni, l'amministratore di sistema, specialmente nuovo nel campo, trova la stringa "root ALL=(ALL) ALL" come modello e garantisce l'accesso illimitato ad altri che potrebbero essere potenzialmente molto dannoso.

Modificare il file "/usr/sbin/visudo" in qualcosa di simile al modello seguente può essere davvero molto pericoloso, a meno che non si creda completamente a tutti gli utenti elencati.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Parametri di sudo

Un 'sudo' configurato correttamente è molto flessibile e il numero di comandi da eseguire può essere configurato con precisione.

La sintassi della riga "sudo" configurata è:

User_name Machine_name=(Effective_user) command

La sintassi di cui sopra può essere divisa in quattro parti:

  1. Nome_utente: questo è il nome dell'utente "sudo".
  2. Nome_macchina: questo è il nome host in cui è valido il comando "sudo". Utile quando si hanno molte macchine host.
  3. (Utente_effettivo): l'"Utente effettivo" a cui è consentito eseguire i comandi. Questa colonna consente agli utenti di eseguire comandi di sistema.
  4. Comando: comando o insieme di comandi che l'utente può eseguire.

Lettura consigliata: 10 utili configurazioni di sudoer per impostare "sudo" in Linux

Alcune delle situazioni e la riga corrispondente "sudo":

Q1. Hai un utente mark che è un amministratore del database. Dovresti fornirgli tutto l'accesso solo sul server database (beta.database_server.com) e non su nessun host.

Per la situazione di cui sopra la riga "sudo" può essere scritta come:

mark beta.database_server.com=(ALL) ALL

Q2. Hai un utente "tom" che dovrebbe eseguire il comando di sistema come utente diverso da root sullo stesso server database, spiegato sopra.

Per la situazione di cui sopra la riga "sudo" può essere scritta come:

mark beta.database_server.com=(tom) ALL

Q3. Hai un utente sudo "cat" che dovrebbe eseguire il comando " solo cane'.

Per implementare la situazione di cui sopra, possiamo scrivere "sudo" come:

mark beta.database_server.com=(cat) dog

Q4. Cosa succede se all'utente devono essere concessi diversi comandi?

Se il numero di comandi che l'utente deve eseguire è inferiore a10, possiamo posizionare tutti i comandi uno accanto all'altro, con uno spazio bianco tra di loro, come mostrato di seguito:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Se questo elenco di comandi varia nell'intervallo in cui non è letteralmente possibile digitare ciascun comando manualmente, dobbiamo utilizzare gli alias. Alias! Sì, l'utilità Linux in cui un comando di lunga durata o un elenco di comandi può essere indicato come una parola chiave piccola e semplice.

Alcuni esempi di alias che possono essere utilizzati al posto della voce nel file di configurazione "sudo".

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

È possibile specificare un Gruppo di sistema, al posto degli utenti, che appartiene a quel gruppo semplicemente aggiungendo il suffisso "%" come di seguito:

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Che ne dici di eseguire un comando "sudo" senza inserire la password?

Possiamo eseguire un comando "sudo" senza inserire la password utilizzando il flag "NOPASSWD".

adam ALL=(ALL) NOPASSWD: PROCS

Qui l'utente "adam" può eseguire tutti i comandialias in "PROCS", senza inserire la password.

Lettura consigliata: lascia che Sudo ti insulti quando inserisci una password errata

sudo” ti fornisce un ambiente robusto e sicuro con molta flessibilità rispetto a “su”. Inoltre la configurazione “sudo” è semplice. Alcune distribuzioni Linux hanno "sudo" abilitato per impostazione predefinita, mentre la maggior parte delle distribuzioni odierne richiedono che tu lo abiliti come misura di sicurezza.

Per aggiungere un utente (bob) a sudo basta eseguire il comando seguente come root.

adduser bob sudo

È tutto per ora. Sarò di nuovo qui con un altro articolo interessante. Fino ad allora restate sintonizzati e connessi a Tecmint. Non dimenticare di fornirci il tuo prezioso feedback nella nostra sezione commenti.