Comprendere SU – Installazione e configurazione di SUDO

su (Unix)

Comprendere SU

In informatica su (abbreviazione dalla lingua inglese di switch user o di substitute user, cambia utente o sostituisci utente) è un comando dei sistemi operativi Unix e Unix-like che permette di avviare una shell testuale assumendo l’identità di un altro utente del sistema. La shell avviata è quella predefinita per l’utente di cui si assume l’identità, ed è possibile passarle parametri per farle ad esempio eseguire direttamente un comando, che a questo punto sarà eseguito con la nuova identità.

su viene tipicamente usato da utenti non privilegiati per avviare una shell nei panni di root, e da root per avviare una shell nei panni di utenti ordinari.

Normalmente su richiede di effettuare un’autenticazione con le credenziali dell’utente di cui si vuole assumere l’identità. Ciò non è richiesto quando su viene eseguito dall’utente root.

Su alcuni sistemi (non GNU/Linux, anche se tecnicamente possibile) solo gli utenti che appartengono al gruppo speciale wheel possono assumere l’identità di root tramite il comando su.

In systemd il comando su è stato sostituito da machinectl shell.

Uso

La sintassi tipica di su è la seguente:

su [utente [arg1 …] ] [-]

Il parametro facoltativo utente specifica il nome dell’utente di cui si desidera assumere l’identità. Se non specificato si assume sia root.

Specificando un trattino “-” si indica di avviare una shell di login, che offre un ambiente sostanzialmente identico a quello che si otterrebbe effettuando la procedura di login testuale nei panni dell’utente di cui si assume l’identità (ad esempio la directory corrente viene impostata alla home directory dell’utente di cui si assume l’identità). Non specificandolo si ottiene invece un ambiente che in parte deriva da quello corrente.

I parametri facoltativi arg sono passati direttamente come parametri alla shell avviata con l’identità del nuovo utente; molte shell (come Bash o la Korn shell) supportano l’opzione “-c riga_di_comando”, con la quale è possibile specificare loro un comando da eseguire, di fatto permettendo l’avvio diretto di altri programmi. Ad esempio “su alice -c ‘ls -l'” avvia una nuova shell con l’identità dell’utente alice, e le passa i parametri “-c ‘ls -l'”, che tipicamente fanno sì che la shell esegua il comando “ls -l”.

Chi è il Superuser (SU)?

Il SuperUser (SU) – comunemente noto come root nei miei sistemi Unix-like è il primo utente creato durante l’installazione del sistema Linux. Utenti in sistemi Linux di solito hanno il loro ID utente, Linux noto come UID – questo è l’ID di ciascun utente nel sistema. Linux riconosce utente per la loro ID, in modo da root è il primo utente che lo rende portano il ID 0.
Il Superuser che ha tutti i privilegi dei sistemi Linux, può creare, modificare, eseguire e cancellare qualsiasi file nel sistema.

Come usare Superuser

Non è sicuro radicare il sistema, non sempre il login come root va bene. Ho visto un paio di amici che hanno radicato il loro sistema, rendendoli root all’avvio del sistema con il proprio ambiente desktop. Questo non è sicuro, garantendo tutti gli accessi applicazioni come root non è consigliabile in quanto le applicazioni possono modificare alcuni file senza permesso e questo può danneggiare alcuni file di sistema che potrebbe creare problemi al sistema Linux.

SU comando: Questo comando è utilizzato per accedere al conto Superuser nella riga di comando Interface (CLI) e quindi eseguire qualsiasi azione come supervisore.

Installazione SUDO

Nella maggior parte delle distribuzioni di Linux, SUDO viene pre-installato, controllando se sudo è già installato:

Debian/Ubuntu:

Terminale

dpkg -s sudo

Red Hat/CentOS:

Terminale

rpm -qa | grep sudo

Restituisce il nome del file del pacchetto o nulla, come non installato

Se sudo non è installato nel sistema, è possibile installarlo utilizzando questo:
Debian / Ubuntu:

Terminale

apt-get install sudo

Red Hat/CentOS:

Terminale

yum install sudo

Quando l’installazione è stata eseguita, avete installato SUDO con successo!

Configurazione SUDO

I file di configurazione di sudo si trovano in /etc/sudoers e /etc/sudoers.d . Siete pregati di non modificare questo file con normali editor di testo come nano o vim ; piuttosto usare visudo che è un pacchetto per la modifica sudoers file in modo che quando si ha un errore di sintassi, vi dirà d’ ignorare la configurazione e affrontare un problema di permessi nel vostro sistema.

Prima di continuare, guardiamo il significato della sintassi di configurazione.

Orji ALL = (ALL: ALL) ALL

La configurazione è un insieme di regole per l’utente orji:

  1. Prima ALL si applica a tutti gli host
  2. Secondo ALL – Può essere eseguito comando come tutti gli utenti
  3. Terzo ALL – Può eseguire il comando come tutto il gruppo
  4. Quarto ALL – Può essere eseguito con tutti i comandi

Questo riassume che l’utente orji possono eseguire qualsiasi comando come root fintanto che fornisce la sua password. Incollare questo in /etc/sudoers dà orji il privilegio.

Per aprire /etc/sudoers come amministratore aprite un terminale e digitate il seguente comando:

Terminale

sudo -s

comprendere-su-sudo comprendere-su-sudo

Aggiunta di un gruppo

Simile a dare a un utente permessi, si può anche dare la stessa autorizzazione a un gruppo. L’unica cosa che farà è l’aggiunta % all’inizio della regola.

% sshusers ALL = (ALL: ALL) ALL

Dare un Privilegio ha un utente

Ho un utente che è sabrina da username e vuole avere privilegi di root, è facile! Basta aggiungere l’utente sabrina alla sudo gruppo digitando:
Debian / Ubuntu:

Terminale
gpasswd -a sabrina sudo

Red Hat/CentOS:

Terminale

gpasswd -a sabrina wheel

L’utente sabrina sarà ora in grado di utilizzare i permessi di root con sudo perché è stata aggiunta al sudo gruppo. In CentOS, il nome del gruppo per gli utenti sudo è wheel.

Dare privilegi con più complessi

Il pacchetto sudo viene fornito in anticipo, un modo complesso di limitare i comandi, utenti e gruppi.

È possibile creare una vasta gamma di utenti, gruppi o comandi in una variabile, vengono in riferimento con la variabile, di seguito vi mostrerò esempio per dare a 2 utenti il privilegio di chiudere solo il sistema.

  • User_Alias: Consente di definire variabili per contenere gli utenti
  • Cmnd_Alias: Consente di definire le variabili per contenere i comandi
  • Runas_Alias: Consente di definire variabili per contenere l’elenco degli utenti alias può essere eseguito
  • Host_Alias: utilizzare per definire variabile di utenti host possono eseguire sudo

Prima di allora, SUDO ha un posto di default i file di autorizzazione possono essere conservati, che è /etc/sudoers.d . La creazione di un file group1 e il contenuto è:

User_Alias GROUPONE = sabrina, orji

GROUPONE ALL = /sbin/shutdown

Salvare la confiugrazione sopra e scoprirete che Ikenna e Orji non potranno eseguire nessun altro comando utilizzando sudo.

È possibile specificare i gruppi di file system con:

User_Alias GROUPONE = %ftpgroup, orji, %sshgroup

Se voglio eseguire un comando multiplo, posso creare un alias di comando:

Cmnd_Alias GONECOMMAND = /sbin/shutdown, /bin/ls, /sbin/reboot

Limitazione Esegui come utenti.

Runas_Alias GONERUNAS = www-data, apache
GROUPONE ALL = (GONERUNAS) GONECOMMAND

Alcuni trucchi con sudo

Il passaggio alla radice:

Terminale

sudo su

Passare per l’utente Mario:

Terminale
sudo su mario

Eseguire il comando come utente o gruppo:

Terminale
  1. sudo -u mario ls /
  2. sudo -g root ls /
Se avete consigli o domande non esitate a scrivermi