Come eseguire uno script di shell come utente diverso

Come eseguire uno script di shell come utente diverso
A volte potresti trovarti necessario per eseguire uno script di shell come un utente diverso dall'utente attivo sulla shell. Questo è abbastanza facile e può essere fatto in alcuni semplici passaggi, quindi come si fa a fare questo? Scopriamolo.

Prerequisiti

Prima di iniziare, assicurati di avere accesso al guscio di un sistema Linux; Qualsiasi distribuzione Linux andrà bene. In questa guida, stiamo gestendo Ubuntu 18.04.

Altrettanto cruciale è assicurarsi di avere uno script di shell con autorizzazioni di esecuzione. Abbiamo un semplice script di shell chiamato Benvenuto.sh Ciò richiede il nome di un utente e lo stampa al terminale. Ecco una sbirciatina.

Come eseguire uno script di shell come un altro utente

Di solito, l'esecuzione di uno script di shell come utente attualmente loggato è piuttosto un gioco da ragazzi. Chiama semplicemente lo script shell come segue:

$ ./Benvenuto.sh

Ma come eseguiresti lo script come un altro utente a parte te stesso? Per raggiungere questo obiettivo, usa semplicemente la sintassi mostrata dove il Altro è il diverso utente che si desidera eseguire lo script.

$ su Altro Ulteruser -s Script.sh

Supponiamo di voler eseguire la sceneggiatura come Linuxways utente. Il comando da eseguire sarà:

$ su Linuxways -s benvenuto.sh

Per confermare che l'altro utente ha eseguito lo script, eseguiremo il comando come mostrato.

$ sudo -h -u altrauser bash -c 'echo "Sono $ utente, con uid $ uid"'

In questo caso, il nostro altro utente lo è Linuxways, Quindi invoceremo il comando.

$ sudo -h -u linuxways bash -c 'echo "I am $ utente, con uid $ uid"'

IL $ Utente E $ Uid Variabili Stampano il nome utente e l'UID dell'utente che esegue lo script. In caso di dubbio o nel caso in cui desideri verificarlo, puoi visualizzare il /etc/passwd file e cerca i dettagli dell'utente come segue.

$ cat /etc /passwd | Grep Linuxways

Ecco un riepilogo dell'output da entrambi i comandi. Notare come il nome utente e l'UID dall'esecuzione dello script shell corrispondano a quelli nel /etc/passwd file.

Conclusione

Se ti chiedevi come eseguire uno script di shell come un altro utente, speriamo che la tua ricerca ora sia finita.