sudo を使用してルート プロファイルに切り替えるときにエイリアスを挿入する方法があるかどうか疑問に思っています。
私が考えているのはこれです:
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
。おそらく、やりたいことに対して 2 つの解決策があり、それぞれに長所と短所があります。
1 alias hop='sudo id'
: をsudo
エイリアスの一部にするか、
2 sudo -s
(コマンドなし) は対話型シェルを起動し、 を読み取ります/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