ルートになるときのソースユーザーの設定

ルートになるときのソースユーザーの設定

私のデフォルトのユーザーアカウントはデフォルトの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

おすすめ記事