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 su
tener source
un archivo que contenga mi colección de alias y funciones.
Respuesta1
Es importante entender que eso sudo
no 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 sudo
sea 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