root以外のユーザーに切り替えるときは、bashrcとvimrcを維持したいと思います。

root以外のユーザーに切り替えるときは、bashrcとvimrcを維持したいと思います。

私はマルチユーザーシステムを使用しています。私はsudo b / cを持っています。責任があると思います。時には他のユーザーを助けるために切り替えたいのですが、なりすましたbashrc / vimrcがあり、それを維持したいと思います。

ルートの場合、これは非常に簡単です。私.bashrc:

alias sudo='sudo '
alias -- -i='bash --rcfile $HOME/.bashrc'
export HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"

基本的にこれが意味するのは、sudo -i私がルートになってmyを取得し、代わりに.bashrcmyを維持するということです。これは、vimが色やrcfileなどの項目を見つけるのに適した場所にあることを意味します。$HOME/home/jeremy/root

他のユーザーになるのと似たようなことをしたいです。理想的な:

  • 源泉私のもの .bashrc; vimを使う私のもの .vim/そんなvimrcことcolors/

  • パスをハードコードしないでください。あるシステムでは私、jeremy他のシステムでは私ですjdr

  • これはすべて、最小限の追加入力でエイリアスまたは関数を介して実行できます。

ルートの場合は、-i他のコマンドを完全に使用して目的の操作を実行できます。 man bash他のユーザーで操作を実行するためのオプションはリストされていません。man sudoしかし、それを得るためのオプションはありません.bashrc。言ったように、この環境を維持してUSERまたはHOMEを設定しないことがsu有望に見えますが、USERをに設定する必要があります。 usingまたは他のコマンドを追加することはできません。これは、シェルが終了した後ではなく、新しいシェルでコマンドを実行する必要があるためです。簡単に言えば、私が知っているコマンドのどれも私が望むように動作しません。man susu -msudo su -mroot&&

私が得ることができる最も近いのは、私がエクスポートするすべての変数をsudo -Esu user作成して維持することです。 my や にこのようなものを追加するuserことができますが、これにより権限エラーが発生し、+x を設定するだけでは不十分です。これは、自分のホームディレクトリに対するデフォルト権限が原因で、他のユーザーがそのディレクトリにアクセスできないためです。他のオプションがない限り、これを変更したいと思います。私が望むすべてのユーザーが権限を持っているわけではないので、入ることはできません。export x=". $HOME/.bashrc".bashrceval $xuser.bashrcsudo

簡単に言うと:現在のユーザーのエイリアス、関数、PS1、PROMPT_COMMAND、およびvim構成を維持しながら他のユーザーになります。バッシュ 4.2

ベストアンサー1

おすすめ記事