Differenza tra su e sudo e Come Configurare sudo in Linux

Il sistema Linux è molto più sicuro rispetto a qualsiasi suo controparte. Uno dei modi per implementare la sicurezza in Linux è la politica di gestione degli utenti e delle autorizzazioni degli utenti e agli utenti normali non è consentito eseguire operazioni di sistema.

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

Linux: su v/s sudo

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

‘su’ Vs ‘sudo’

su‘ ti obbliga a condividere la tua password di root con altri utenti, mentre ‘sudo‘ permette di eseguire comandi di sistema senza password di root. ‘sudo‘ ti consente di utilizzare la tua password per eseguire comandi di sistema, delegando così la responsabilità del sistema senza password di root.

Cosa è ‘sudo’?

sudo‘ è un binario radice setuid, che esegue comandi di root per conto degli utenti autorizzati e gli utenti devono inserire la propria password per eseguire il 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

A screen shot of ‘/usr/sbin/visudo‘ file, looks something like this:

L’elenco sudo sembra la seguente stringa, per impostazione predefinita:

root ALL=(ALL) ALL

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

Concessione dell’accesso sudo

In molte situazioni, l’Amministratore di Sistema, specialmente se è nuovo nel campo, trova la stringa “root ALL=(ALL) ALL” come modello e concede accesso illimitato ad altri, il che potrebbe essere potenzialmente molto dannoso.

Modificare il file ‘/usr/sbin/visudo’ in un modello simile a quello mostrato di seguito potrebbe essere molto pericoloso, a meno che tu non abbia fiducia in tutti gli utenti elencati completamente.

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

Parametri di sudo

A properly configured ‘sudo‘ is very flexible and number of commands that needs to be run may be precisely configured.

La sintassi della linea di configurazione di ‘sudo‘ è:

User_name Machine_name=(Effective_user) command

La sintassi sopra può essere divisa in quattro parti:

  1. Nome_utente: Questo è il nome dell’utente di ‘sudo‘.
  2. Nome_machina: Questo è il nome host in cui il comando di ‘sudo‘ è valido. Utile quando si hanno molte macchine ospiti.
  3. (Utente_effettivo): L’utente effettivo autorizzato ad eseguire i comandi. Questa colonna consente agli utenti di eseguire i comandi di sistema.
  4. Comando: comando o insieme di comandi che l’utente può eseguire.

Lettura consigliata: 10 Configurazioni Utili di Sudoers per Impostare ‘sudo’ in Linux

Alcune delle situazioni e la rispettiva riga ‘sudo’:

Q1. Hai un utente mark che è un Amministratore di Database. Devi fornirgli tutti gli accessi solo sul Server Database (beta.database_server.com), e non su nessun altro host.

Per la situazione sopra descritta la riga ‘sudo’ può essere scritta come:

mark beta.database_server.com=(ALL) ALL

Q2. Hai un utente ‘tom‘ che deve eseguire comandi di sistema come utente diverso da root sullo stesso Database Server, come spiegato in precedenza.

Per la situazione sopra descritta la riga ‘sudo’ può essere scritta come:

mark beta.database_server.com=(tom) ALL

Q3. Hai un utente sudo ‘cat‘ che può eseguire solo il comando ‘dog‘.

Per implementare la situazione sopra descritta, 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 dei comandi che l’utente deve eseguire è inferiore a 10, possiamo elencare tutti i comandi insieme, con uno spazio bianco tra di essi, come mostrato di seguito:

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

Se questa lista di comandi varia nel range, dove è letteralmente impossibile digitare manualmente ogni comando abbiamo bisogno di utilizzare alias. Alias! Sì, l’utilità di Linux in cui un comando lungo o una lista di comandi può essere indicata con una parola chiave breve e semplice.

A few alias Examples, which can be used in place of entry in ‘sudo‘ configuration file.

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 ‘%’ come segue:

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Come 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 comandi alias sotto “PROCS”, senza inserire la password.

Lettura Suggerita: Lasciare 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 di “sudo” è facile. Alcune distribuzioni Linux hanno “sudo” abilitato per impostazione predefinita, mentre la maggior parte delle distribuzioni attuali richiede di abilitarlo come Misura di Sicurezza.

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

adduser bob sudo

Questo è tutto per ora. Sarò di nuovo qui con un altro articolo interessante. Nel frattempo rimanete sintonizzati e connessi a Tecmint. Non dimenticate di fornirci il vostro prezioso feedback nella nostra sezione commenti.

Source:
https://www.tecmint.com/su-vs-sudo-and-how-to-configure-sudo-in-linux/