A variável $ USER é expandida no momento em que você insere o comando, não após o su como executado. su normal-user -c 'echo $USER'
produzirá os resultados esperados. As aspas simples significam que $ USER não será expandido até depois do su.
Histórico breve:
ao executar um script que usa notify-send "title" "message"
, espera-se que ele mostre uma notificação, mas sudo ./script
não exibe notificação
Depois de ler e visitar muitas páginas, descobri que a execução dessa parte (notificar-enviar parte) do meu script ainda pode notificar o usuário.
Problema:
Assim, testando este comando su:
su normal-user -c "echo $USER"
root
Por que isso não está retornando normal-user
A variável $ USER é expandida no momento em que você insere o comando, não após o su como executado. su normal-user -c 'echo $USER'
produzirá os resultados esperados. As aspas simples significam que $ USER não será expandido até depois do su.