Introduzione
Linux è il sistema operativo open source più utilizzato. Gli utenti Linux hanno un gran numero di opzioni per scegliere il sistema operativo da utilizzare. Hai diverse opzioni per scegliere il desktop per i tuoi sistemi Linux. I professionisti Linux amano ancora il funzionamento della riga di comando. Principalmente le edizioni per server Linux vengono fornite solo con l'opzione della riga di comando, che le rende più leggere e veloci.
Gli utenti Linux utilizzano la shell per interagire con i sistemi operativi. In cui Bash (Born Shell) è la shell più utilizzata e disponibile di default sulla maggior parte dei sistemi. Ora anche Zsh (Z Shell) sta diventando popolare tra gli utenti grazie alle sue caratteristiche.
In questo tutorial imparerai come eseguire il comando come un altro utente nei sistemi Linux/Unix.
Eseguire comandi come un altro utente con Su
Il comando su (Cambia utente) viene utilizzato per eseguire la shell come un altro utente. Questo comando passa al nuovo utente e carica il suo ambiente.
Il comando di base su appare come di seguito:
su - username
Il comando sopra ti permette di cambiare ad un altro utente, dove puoi eseguire comandi con quell'utente. Ma il nostro scopo è eseguire il comando Linux come un altro utente senza fare il cambio utente. Per fare ciò, controlla l'esempio seguente.
Sono attualmente connesso come utente root. Puoi passare il tuo comando con il parametro -c
. Ora, l'esempio seguente eseguirà il comando ls
come utente alice
senza cambiare utente:
su - alice -c "pwd"
/home/alice
Puoi anche eseguire più comandi come un altro utente in Linux, come:
su - alice -c "pwd; mkdir hello && cd hello; pwd"
/home/alice
/home/alice/hello
Nel comando precedente, prima stampa la directory di lavoro presente con pwd, quindi crea e passa alla nuova directory denominata hello
. Stampa nuovamente la directory di lavoro presente. Tutti i comandi sono separati da punto e virgola ;
come facciamo in generale.
Eseguire il comando come un altro utente con Sudo
Questo metodo è generalmente usato per eseguire il comando come utente root, ma puoi anche usarlo con altri utenti. Qui non è necessario utilizzare alcuna opzione della riga di comando. Immettere il nome dell'utente con cui si desidera eseguire il comando.
Sintassi:
sudo -u username [commands...]
Ad esempio, stai scrivendo uno script di shell, che richiedeva di essere eseguito come utente non root. Ma è necessario riavviare il servizio apache2
. In tal caso puoi usare sudo per eseguire il comando come utente root:
sudo -u root 'systemctl restart apache2'
Eseguire il comando come un altro utente con Runuser
È inoltre possibile utilizzare runuser
per eseguire comandi come un altro utente nei sistemi Linux. Si tratta di comandi meno conosciuti dagli utenti Linux. Utilizzare il comando runuser per eseguire comandi con l'ID utente effettivo e l'ID gruppo dell'utente definito.
Sintassi:
runuser - username -c [commands...]
Ad esempio, esegui un comando come utente alice
e crea una directory nella sua directory home:
runuser - alice -c 'mkdir -p ~/hello'
Quindi elenca i file nella directory home dell'utente alice
:
runuser - alice -c 'ls -l'
total 16
-rw-r--r-- 1 alice alice 8980 Feb 16 2020 examples.desktop
drwxr-xr-x 2 alice alice 4096 Dec 22 14:55 hello
È inoltre possibile eseguire entrambi i comandi in un unico comando. Basta aggiungere più comandi separati da un punto e virgola:
runuser - alice -c 'mkdir -p ~/hello; ls -l'
Conclusione
In questo tutorial, hai imparato a eseguire comandi come un altro utente nel sistema Linux. Hai imparato a eseguire comandi come un altro utente con l'aiuto dei comandi su, sudo e runuser Linux.