Mostra tutti

Linux – Come eseguire comandi come utente “superuser”

Linux – Come eseguire comandi come utente “superuser”

Superuser o Super Utente nei sistemi Unix e GNU/Linux

Nei sistemi operativi Unix e GNU/Linux c’è un utente particolare, detto super utente e contraddistinto dall’avere un UID (User ID) uguale a 0 e nome utente root, che ha totale accesso al sistema senza nessuna restrizione, cioè ne è l’ amministratore.

Nella maggior parte dei sistemi GNU/Linux, l’amministratore del computer non usa l’utente amministratore (per motivi di sicurezza) ma usa un utente normale per svolgere il lavoro quotidiano. Quando ha la necessità di svolgere mansioni di amministrazione apre un terminale e avvia una sessione come utente root, oppure se si trova già in un terminale come utente normale usa il comando su per diventare utente root.

Ubuntu usa un sistema diverso per compiere operazioni amministrative, basato sull’utilizzo del comando sudo. Con sudo l’utente non ha la necessità di ricordare per sempre la password, anche se normalmente userà l’account root molto raramente. Inoltre, costringendo all’esecuzione controllata dei singoli comandi, si evitano eventuali disattenzioni nell’utilizzo degli stessi, chiedendo la password nel caso si stiano per lanciare comandi amministrativi e mantenendo un log completo dei comandi eseguiti, permettendo l’analisi di ciò che è avvenuto nel sistema.

Di contro, se qualcuno scopre la password di un utente abilitato all’utilizzo di sudo come root in effetti può facilmente ottenere accesso totale al sistema. Normalmente, le password utente sono più semplici rispetto a quelle scelte per l’utente root e ciò può rivelarsi fonte di problemi; per tale ragione bisogna prestare molta attenzione nella scelta delle password utente.

Se si ha abilitato l’account root e si utilizza su, per ottenere i privilegi di amministrazione è necessario inserire due password, quella utente e quella dell’account root.

Quando in un sistema alcuni compiti amministrativi sono condivisi fra diversi account, l’utilizzo di sudo evita di dover dare la password di root a vari utenti. L’amministratore può assegnare temporaneamente a qualsiasi utente privilegi particolari, eliminandoli o limitandoli quando non vi è più necessità.

superuser

Eseguire comandi come utente “superuser”

Prima di passare ad altri comandi di sistema, dovreste apprendere maggiori informazioni su come eseguire i comandi come superuser.

Probabilmente sapete già che potete eseguire il comando “su” immettere la password root per avviare una shell root. Questo sistema funziona, ma presenta gli svantaggi seguenti:

  • Non avete alcun record dei comandi di modifica del sistema.
  • Non avete alcun record degli utenti che hanno eseguito comandi di mo­difica del sistema.
  • Non avete accesso al normale ambiente di shell a cui siete abituati.
  • Dovete digitare la password root.

La maggior parte delle grosse installazioni di workstation utilizza un pacchetto chiamato sudo per consentire agli amministratori di sistema di ese­guire comandi come root quando sono collegati come amministratori.

Ad esempio, se desiderate utilizzare vipw per modificare il file /etc/passwd, potreste procedere in questo modo:

sudo vipw

Quando eseguite questo comando, sudo registra questa azione con il servizio syslog sotto la facility local2, fornendo quindi un record dell’azione svolta.

Naturalmente il sistema non consente a qualsiasi utente di eseguire co­mandi come superuser; è necessario configurare gli utenti privilegiati nel fi­le

 /etc/sudoers 

In realta sudo ha moltissime opzioni (che probabilmente non utilizzerete mai) e ne consegue una sintassi piuttosto complicata del fi­le /etc/sudoers.

Ecco un file di esempio che assegna a utente1 e utente2 la facoltà di eseguire qualsiasi comando come root senza bisogno di immet­tere una password:

 User_Alias ADMINS = utente1 utente2  
 ADMINS     ALL  =  NOPASSWD:   ALL   
 root  ALL=(ALL)   ALL   
  • La prima riga definisce un alias di utente ADMINS per i due utenti e la seconda riga concede i privilegi.
  • La parte ALL = NOPASSWD: ALL significa che gli utenti nell’alias ADMINS possono utilizzare sudo per eseguire i comandi come root.
  • Il secondo ALL significa “qualsiasi host” (se avete più di una macchina potete impostare diversi tipi di accesso per ogni machina o per gruppi di macchine).
  • root ALL=(ALL) ALL significa semplicemente che il superuser pud uti-lizzare anche sudo per eseguire qualsiasi comando su qualsiasi host. L’altro (ALL) significa che il superuser puo anche eseguire comandi come qualsiasi altro utente.

E possibile estendere questo privilegio agli utenti ADMINS cambiando la riga /etc/sudoers mostrata precedentemente nel modo seguente:

 ADMINS     ALL =  (ALL)  NOPASSWD: ALL 

Utilizzate il comando  visudo   per modificare /etc/sudoers. Questo comando cerca errori di sintassi nel file dopo il salvataggio.

 

libro vita da hacker