Estou me perguntando se existe uma maneira de injetar um alias quando você muda para o perfil root com o sudo.
O que tenho em mente é o seguinte:
sshLogin@linuxVM /home/sshLoginUser/> sudo su -x "alias goHome='cd /home/sshLoginUser/'"
root@linuxVM /home/OtherDir/> goHome
root@linuxVM /home/sshLoginUser/>
Estou usando uma caixa VM na nuvem para configurar e executar algumas operações e, eventualmente, quero adicionar mais alias para tarefas repetitivas.
Idealmente, eu gostaria de sudo su
criar source
um arquivo que contenha minha coleção de aliases e funções.
Responder1
É importante entender que isso sudo
não faz expansão do shell; ele executa um comando. Provavelmente existem duas soluções para o que você gostaria de fazer, cada uma com suas próprias vantagens/desvantagens:
1 alias hop='sudo id'
: faça sudo
parte do alias ou
2 sudo -s
(sem comando), que inicia um shell interativo e lê arquivos /root/.bashrc
.
Responder2
[tom@alarm ~]$ sudo -i
[root@alarm ~]# tail -n 1 .bashrc
alias goHome="cd /home/$SUDO_USER"
[root@alarm ~]# goHome
[root@alarm tom]# pwd
/home/tom
[root@alarm tom]#
Se os env vars "integrados" não forem suficientes para seus casos, você também pode fazer com que o sudo preserve alguns personalizados. Por exemplo:
CERTAINFILE="/home/$USER/different_name" sudo -i --preserve-env=CERTAINFILE