$ SUDO_USER não funciona se você estiver usando sudo su -
.
Também requer várias verificações - se, $USER == 'root'
então, obter $SUDO_USER
.
Em vez do whoami
uso do comando who am i
. Isso executa o who
comando filtrado para a sessão atual. Fornece mais informações do que você precisa. Então, faça isso para obter apenas o usuário:
who am i | awk '{print $1}'
Alternativamente (e mais simples) você pode usar logname
. Ele faz a mesma coisa que a declaração acima.
Isso fornece o nome de usuário que efetuou login na sessão.
Estes funcionam independentemente de sudo
ou sudo su [whatever]
. Ele também funciona independentemente de quantas vezes su
e sudo
são chamados.
who am i
é a resposta aqui.