내 기본 사용자 계정이 zsh
기본 쉘로 설정되어 있습니다. .zshrc
파일에서 일부 구성을 수행했는데 모든 것이 정상입니다 .
그러나 일단 root
run 을 통과 하면 아무런 구성도 없이 인스턴스 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