我想知道當您使用 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 su
一個source
包含我的別名和函數集合的檔案。
答案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