Voglio creare uno script bash che deve essere eseguito con sudo ma dovrebbe tenere conto del nome dell'utente non sudo che lo ha eseguito. Quindi, se l'utente bob
esegue, sudo ./myscript.sh
vorrei myscript.sh
sapere che è bob
stato colui che l'ha eseguito.
Diamo un'occhiata dentro myscript.sh
:
USER=$(whoami)
# Do something that takes into account the username.
Come posso sapere il nome dell'utente che ha generato il processo? Più specificamente, cosa dovrei usare invece di whoami
ottenere bob
e no root
?
#!/usr/bin/env bash
sui miei script bash.
sh
o qualcos'altro.
USER=$(whoami)
. Si noti cheUSER
esiste già come variabile interna della shell. Inoltre, se è uno script bash, non eseguirlo usandosh
, che ha solo un sottoinsieme di funzionalità compatibili con POSIX.