ルートに変更するときに別のシェルを使用する方法

ルートに変更するときに別のシェルを使用する方法

私のユーザーシェルには、次のような.vimrcいくつかの個人設定があります。.bash_profile

su -rootの使用に切り替えながら、私のユーザープロファイルも使用できますか?

答え1

ターゲットユーザーのプロファイルと環境をインポート-するように指示します。su以前の環境(つまり、ユーザー環境)を維持するためには省略してください-suもちろん、rootユーザーに関連するパスコンポーネントは存在せず、手動で追加する必要があります。

答え2

su -「ルートに切り替えてログインシェルとして実行する」(su -lとも呼ばれるsu --login)を意味します。

-これで変数がなくても$HOME設定されているので、バージョンを$HOME/.vimrc指すようになります。root

私たちに必要なのは--preserve-environment選択です。

su --preserve-environment

これはルートシェルを実行しますが、$HOME同じままで、独自のシェル(たとえば、またはksh使用している場合zsh)を実行し、ドットファイルを実行します。

例えば

$ su --preserve-environment  
Password: 
# id
uid=0(root) gid=0(root) groups=0(root)
# echo $HOME
/home/sweh
# echo $0
ksh
# 

答え3

ルートに接続し.bash_profileたり、.bashrcより便利で利用可能な場所に接続したりできます。

profile=anand # let's assume this is your user name
myorigusername=$(who am i | awk {'print $1'})
if [ "${myorigusername}" = "${profile}" ]
then
  cd ~${myorigusername}
  . ./.vimrc
  . ./.bash_profile
  # other stuff here
fi 

説明が必要な場合は、尋ねるか、システムでテストしてください。

関連情報