Uma pergunta estranha, eu sei. Aqui está o script:
echo $USER
Aqui está o comando que eu uso para executá-lo:
sudo ./myscript.sh
No momento, ele imprime "root", mas eu quero que ele imprima jon
, meu nome de usuário. Existe uma maneira de fazer isso alterando o script, e não o comando?
command-line
bash
sudo
environment-variables
Jonathan
fonte
fonte
Respostas:
Use a
SUDO_USER
variável de ambiente em vez deUSER
.sudo
coloca o nome do usuário que o executou naSUDO_USER
variável de ambiente:Então você pode simplesmente substituir
$USER
por$SUDO_USER
no seu script:Leitura adicional
man sudo
, na seção "AMBIENTE":A página de manual também descreve algumas outras variáveis de ambiente relacionadas definidas por
sudo
que podem ser úteis, comoSUDO_UID
eSUDO_GID
Obtendo $ USER dentro do script de shell ao executar com o sudo?
fonte