Use a variável de ambiente SUDO_USER em vez de USER .
sudo coloca o nome do usuário que o executou na variável de ambiente SUDO_USER :
ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek
Você pode simplesmente substituir $USER por $SUDO_USER no seu script:
echo $SUDO_USER
Leitura Adicional
-
man sudo, na seção "MEIO AMBIENTE":SUDO_USER Set to the login name of the user who invoked sudo.A página do manual também descreve algumas outras variáveis de ambiente relacionadas definidas por
sudoque podem ser úteis, comoSUDO_UIDeSUDO_GID