私のデフォルトのユーザーアカウントはデフォルトのzsh
シェルに設定されています。.zshrc
ファイルでいくつかの設定を行いましたが、すべてが正常です。
ただし、root
実行を通過すると、構成なしでインスタンスsudo -s
が作成されますzsh
。これでエイリアスなどを復元するために実行できますが、source ~/.zshrc
それをデフォルトとして使用したいと思います。なども.vimrc
同じだ。
どうすればいいですか?
このシステムには自分だけではないため、移動.zshrc
やその他の設定は/root/
できません。sudoer
ベストアンサー1
sudo の構成に応じて、HOME
環境変数がホームディレクトリを指すようにするか、ターゲットユーザーのホームディレクトリを指すようにすることができます。これは実行するかどうかによってsudo -s
異なります(再度sudo構成によって異なります)。sudo zsh
常にホームディレクトリを維持するには、次のものを使用できます。
sudo --preserve-env=HOME
sudoの設定が許可する場合、または
sudo env HOME="$HOME" zsh
これは常に可能です。
エイリアスや関数にしたいかもしれません。
alias sudo='sudo --preserve-env=HOME'
または
function sudo {
if [ $# -eq 0 ]; then
set env HOME="$HOME" zsh
fi
sudo "$@"
}
一部のアプリケーションは、ステータスファイルをホームディレクトリに保存するため、.viminfo
および.zsh_history
。少数のプログラムにのみ問題がある場合は、別の状態ファイルを使用するように構成してください。たとえば、私のもの.vimrc
:
" Disable viminfo if running as root
if has("unix")
if system("id -u") == 0
set viminfo=
endif
endif
そして(より複雑なバージョン)私の場合は次のようになります.zshrc
。
if [[ $UID -eq 0 ]]; then
HISTFILE="${HISTFILE%_history}_root_history"
fi