Inyectando sudo su con alias

Inyectando sudo su con alias

Me pregunto si hay alguna manera de inyectar un alias cuando cambias al perfil raíz con sudo.

Lo que tengo en mente es esto:

sshLogin@linuxVM /home/sshLoginUser/> sudo su -x "alias goHome='cd /home/sshLoginUser/'"
root@linuxVM /home/OtherDir/> goHome
root@linuxVM /home/sshLoginUser/>

Estoy usando una máquina virtual en la nube para configurar y ejecutar algunas operaciones y eventualmente quiero agregar más alias para tareas repetitivas.

Idealmente, me gustaría sudo sutener sourceun archivo que contenga mi colección de alias y funciones.

Respuesta1

Es importante entender que eso sudono hace expansión de shell; ejecuta un comando. Probablemente haya dos soluciones para lo que le gustaría hacer, cada una con sus propias ventajas/desventajas:

1 alias hop='sudo id': deja que sudosea parte del alias o

2 sudo -s(sin comando), que inicia un shell interactivo y lee /root/.bashrc.

Respuesta2

[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]#

Si las variables de entorno "integradas" no son suficientes para sus casos, también puede hacer que Sudo preserve algunas personalizadas. Por ejemplo:

CERTAINFILE="/home/$USER/different_name" sudo -i --preserve-env=CERTAINFILE

información relacionada