Quando você inicia um root bash shell como sudo -i ou sudo -s ou sudo su (desde que o shell de login de root seja bash ) ou sudo bash , o usuário original está disponível como $SUDO_USER .
Mas quando iniciado como sudo su - , o ambiente é limpo por su , então você terá que encontrar outra maneira de encontrar o usuário original.
Uma maneira, se você tiver o comando pstree , pode ser:
original_user=${SUDO_USER:-$(pstree -Alsu "$$" |
sed -n "s/.*(\([^)]*\)).*($USER)[^(]*$//p")}
export HISTTIMEFORMAT="<%F %T> (${original_user:-$USER}) [$$] "
export PROMPT_COMMAND='builtin history 1 >> /var/log/root.log'
A ideia é analisar a saída de pstree -Alsu "$$" que se parece com:
init---xterm(user)---zsh---sudo(root)---su---bash---pstree
Para extrair o user .