Timeline
Chat
Prospettiva

Sudo

comando dei sistemi operativi Unix e Unix-like Da Wikipedia, l'enciclopedia libera

Sudo
Remove ads

Sudo (abbreviazione dalla lingua inglese di super user do, "esegui come super utente"[1]), in informatica, è un programma per i sistemi operativi Unix e Unix-like che, con dei vincoli, permette di eseguire altri programmi assumendo l'identità (e di conseguenza anche i privilegi) di altri utenti.

Disambiguazione – Se stai cercando altri significati, vedi Sudo (disambigua).
Fatti in breve Sudo software, Genere ...

Originariamente il nome stava per super user do[1], poiché le prime versioni di sudo erano progettate per eseguire comandi solo come superutente; tuttavia, le versioni successive hanno aggiunto la possibilità di eseguire comandi non solo come superutente, ma anche come altri utenti (cosiddetti sudoer).

Alcuni sistemi come macOS[2] e Ubuntu[3] installano sudo nativamente, mentre in altri esso va eventualmente installato in un secondo tempo.

Remove ads

Caratteristiche

I vincoli con cui sudo esegue programmi sono espressi nel file di configurazione /etc/sudoers, che normalmente è modificabile solo dall'utente root: in esso sono definiti gli utenti che possono eseguire comandi tramite sudo, le identità che possono assumere ed i comandi che possono eseguire con eventuali vincoli sui parametri, con o senza richiesta di autenticazione. Oltre che nel suddetto file di configurazione, tali informazioni possono essere memorizzate (con uno schema specifico per sudo) anche in un servizio di directory che sudo poi può interrogare via LDAP, offrendo quindi modo di condividere la stessa configurazione tra host diversi.

Nell'uso comune sudo viene configurato dall'amministratore di sistema per consentire a utenti non privilegiati di eseguire programmi assumendo l'identità dell'utente root, autenticandosi però con le proprie credenziali invece che con quelle di root. Al contrario del comando su ciò permette di evitare di dover diffondere le credenziali di root, semplificando così la gestione della sicurezza. Questo è ad esempio il comportamento predefinito dei sistemi Ubuntu per tutti gli utenti membri del gruppo speciale admin[3].

Remove ads

Aspetti legati alla sicurezza

Dal punto di vista della sicurezza occorre tuttavia tenere ben presente che, benché sia possibile limitare i comandi ed i relativi parametri, sudo non effettua controlli di sorta sull'integrità dei file eseguibili che esso va ad avviare, ed è quindi importante assicurarsi che essi non possano essere alterati o sostituiti da utenti non privilegiati, e in particolare da quelli che li eseguono tramite sudo: in caso contrario, l'utente non privilegiato potrebbe alterare tali file in modo da eseguire codice arbitrario, e poi eseguirli con i privilegi concessi tramite sudo, di fatto creando un buco di sicurezza. Ciò si può prevenire ad esempio tramite il meccanismo dei permessi del sistema operativo.

Altre differenze rispetto al comando su consistono nella possibilità di configurare sudo per casi specifici in modo da non richiedere affatto autenticazione (utile per realizzare script non interattivi e non privilegiati che debbono effettuare alcune operazioni privilegiate) e/o limitare i comandi eseguibili ed i relativi parametri.

Remove ads

Sintassi

La sintassi generale di sudo è la seguente:

sudo [opzioni] [variabile1=valore1 …] [--] [comando [arg1]]

Il parametro facoltativo comando indica il comando da eseguire, ed i parametri arg sono i suoi parametri. È possibile assegnare delle variabili d'ambiente per l'esecuzione del comando facendolo precedere da parametri nella forma variabile=valore.

Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni o assegnazioni di variabili.

Thumb
Un esempio di comando sudo, su Ubuntu

Tra le opzioni principali vi sono:

-u utente
Assume l'identità di utente invece che quella di root.
-l
Elenca i comandi che l'utente corrente può eseguire tramite sudo.
-i
Avvia la shell predefinita per l'utente di cui si assume l'identità.

È inoltre possibile accedere alla shell come utente root digitando:

sudo su

Esempi

Esegue con l'identità dell'utente root il comando apt-get install apache:

sudo apt-get install apache

Avvia il comando psql con l'identità dell'utente postgres e preimpostando la variabile d'ambiente LD_LIBRARY_PATH:

sudo -u postgres LD_LIBRARY_PATH=/usr/local/postgres/lib psql

Avvia la shell predefinita dell'utente alice:

sudo -u alice -i

Note

Voci correlate

Altri progetti

Collegamenti esterni

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads