Controlla se uno script è in esecuzione come utente root in Linux

29 set 2022 1 min di lettura
Controlla se uno script è in esecuzione come utente root in Linux
Indice dei contenuti

Introduzione

A volte gli script della shell devono essere eseguiti come utente root per eseguire alcune attività con privilegi di amministratore. In genere, tali compiti possono essere raggiunti con i comandi Sudo. Se in alcuni casi è ancora necessario forzare l'utente a eseguire lo script come utente root, è possibile aggiungere codice allo script per verificare se lo script è in esecuzione con l'utente root o meno.

Controllare se uno script di shell è in esecuzione come utente root

Aggiungi il codice seguente all'inizio dello script della shell per verificare se lo script è in esecuzione come utente root. Se lo script viene eseguito come account non root, uscirà con il codice di stato 1:

#!/usr/bin/env bash
 
if [ "$EUID" -ne 0 ];then
    echo "Please run this script as root user"
    exit 1
fi

Qui l'EUID è la variabile di sistema che ha memorizzato l'ID utente (UID) dell'utente attualmente connesso. L'UID dell'utente "root" è sempre 0 sui sistemi Linux.

Invece di utilizzare l'UID, puoi anche abbinare il nome utente che ha effettuato l'accesso. Il comando whoami fornisce il nome utente attualmente registrato. Lo script seguente verificherà se lo script è in esecuzione come utente root o meno:

date +%F         #Output: 2022-07-25
date +%Y-%m-%d   #Output: 2022-07-25

Controllare se uno script di shell è in esecuzione come utente non root

A volte gli script devono essere eseguiti come account non root. In tal caso, puoi aggiungere il seguente snippet per verificare la presenza di un account utente e continuare solo se lo script è in esecuzione come utente normale:

date +%F         #Output: 2022-07-25
date +%Y-%m-%d   #Output: 2022-07-25

Conclusione

In questa guida rapida, hai imparato come aggiungere restrizioni in uno script di shell da eseguire come utente root o utente non root. Se sta eseguendo un utente diverso, lo script uscirà immediatamente.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.