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
.