使用别名注入 sudo su

使用别名注入 sudo su

我想知道当您使用 sudo 切换到 root 配置文件时是否有办法注入别名。

我的想法是这样的:

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

我正在使用云上的 VM 盒来设置和运行一些操作,并且最终想为重复任务添加更多别名。

理想情况下,我希望sudo susource一个文件中包含我的别名和函数集合。

答案1

重要的是要理解,这sudo不进行 shell 扩展;它运行一个命令。对于您想要做的事情,可能有两种解决方案,每种都有自己的优点/缺点:

1 alias hop='sudo id':让sudo成为别名的一部分或

2 sudo -s(不带命令),启动一个交互式 shell 并读取/root/.bashrc

答案2

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

如果“内置”环境变量不足以满足您的情况,您还可以让 sudo 保留一些自定义变量。例如:

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

相关内容