androide

Comando Sudo in Linux

Comando sudo - Executando comandos com privilégios elevados no Linux - 01

Comando sudo - Executando comandos com privilégios elevados no Linux - 01

Sommario:

Anonim

Il comando sudo consente di eseguire programmi come un altro utente, per impostazione predefinita l'utente root. Se passi molto tempo sulla riga di comando, sudo è uno dei comandi che userai abbastanza frequentemente.

L'uso di sudo invece dell'accesso come root è più sicuro perché è possibile concedere privilegi amministrativi limitati ai singoli utenti senza che siano a conoscenza della password di root.

In questo tutorial, spiegheremo come usare il comando sudo .

Installazione di Sudo (comando sudo non trovato)

Il pacchetto sudo è preinstallato sulla maggior parte delle distribuzioni Linux.

Per verificare se il pacchetto sudo è installato sul tuo sistema, apri la tua console, digita sudo e premi Enter . Se hai installato sudo il sistema visualizzerà un breve messaggio di aiuto, altrimenti vedrai qualcosa come il sudo command not found .

Se sudo non è installato, puoi installarlo facilmente usando il gestore pacchetti della tua distribuzione.

Installa Sudo su Ubuntu e Debian

apt install sudo

Installa Sudo su CentOS e Fedora

yum install sudo

Aggiunta dell'utente ai sudatori

Per impostazione predefinita, sulla maggior parte delle distribuzioni Linux concedere l'accesso sudo è semplice come aggiungere l'utente al gruppo sudo definito nel file sudoers . I membri di questo gruppo saranno in grado di eseguire qualsiasi comando come root. Il nome del gruppo può differire da distribuzione a distribuzione.

Nelle distribuzioni basate su RedHat come CentOS e Fedora, il nome del gruppo sudo è wheel . Per aggiungere l'utente all'esecuzione del gruppo:

usermod -aG wheel username

Su Debian, Ubuntu e i loro derivati, i membri del gruppo sudo hanno accesso con sudo:

usermod -aG sudo username

L'account utente root in Ubuntu è disabilitato di default per motivi di sicurezza e gli utenti sono incoraggiati ad eseguire attività amministrative di sistema usando sudo. L'utente iniziale creato dal programma di installazione di Ubuntu è già un membro del gruppo sudo, quindi se si esegue Ubuntu è probabile che l'utente a cui si è effettuato l'accesso sia già concesso con i privilegi di sudo.

Ad esempio, per consentire all'utente linuxize di eseguire solo il comando mkdir come sudo, digitare:

sudo visudo

e aggiungi la seguente riga:

linuxize ALL=/bin/mkdir

Sulla maggior parte dei sistemi, il comando visudo apre il /etc/sudoers con l'editor di testo vim. Se non hai esperienza con vim, consulta il nostro articolo su come salvare un file e chiudere l'editor vim.

Puoi anche consentire agli utenti di eseguire comandi sudo senza immettere la password:

linuxize ALL=(ALL) NOPASSWD: ALL

Come usare Sudo

La sintassi per il comando sudo è la seguente:

sudo OPTION.. COMMAND

Il comando sudo ha molte opzioni che controllano il suo comportamento, ma di solito sudo è usato nella sua forma più semplice, senza alcuna opzione.

Per usare sudo, basta aggiungere il comando prefisso con sudo :

sudo command

Dove command è il comando per cui si desidera utilizzare sudo.

Sudo leggerà il /etc/sudoers e verificherà se l'utente che ha invocato è autorizzato con sudo assess. La prima volta che usi sudo in una sessione, ti verrà chiesto di inserire la password dell'utente e il comando verrà eseguito come root.

Ad esempio, per elencare tutti i file nella directory /root dovresti usare:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

Timeout password

Per impostazione predefinita, sudo ti chiederà di inserire nuovamente la password dopo cinque minuti di inattività di sudo. È possibile modificare il timeout predefinito modificando il file sudoers . Apri il file con visudo :

sudo visudo

Imposta il timeout predefinito aggiungendo la riga seguente, dove 10 è il timeout specificato in minuti:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

Esegui un comando come utente diverso dalla radice

C'è una percezione errata che sudo sia usato solo per fornire permessi di root a un utente normale. In realtà, puoi usare sudo per eseguire un comando come qualsiasi utente.

L'opzione -u consente di eseguire un comando come utente specificato.

Nel seguente esempio stiamo usando sudo per eseguire il comando whoami come utente "richard":

sudo -u richard whoami

Il comando whoami stamperà il nome dell'utente che esegue il comando:

richard

Come reindirizzare con Sudo

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

Ciò accade perché il reindirizzamento " > " dell'output viene eseguito sotto l'utente a cui si è effettuato l'accesso, non l'utente specificato da sudo. Il reindirizzamento avviene prima che venga richiamato il comando sudo .

Una soluzione è invocare una nuova shell come root usando sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

Un'altra opzione è collegare l'output come utente normale al comando tee come mostrato di seguito:

echo "test" | sudo tee /root/file.txt

Conclusione

Hai imparato come usare il comando sudo e come creare nuovi utenti con privilegi sudo.

terminale sudo