使用別名註入 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 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

相關內容