
나는 ubuntu-10.04와 bash를 사용하고 있습니다. 나는 루트로 가서 내가 루트에 있다는 것을 반영하기 위해 밑줄이 그어진 빨간색 문자로 프롬프트를 변경하도록 하고 싶습니다. Bash 프롬프트에서 다음을 입력하면:
$ sudo bash
그런 다음 루트로 이동하지만 프롬프트는 변경되지 않습니다. 나는 /root/.bashrc
다음을 가지고 있습니다 :
RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '
그러나 이 파일은 읽히지 않습니다. 이를 읽으려면 프롬프트에 다음을 입력해야 합니다.
# . /root/.bashrc
나는 그것을하고 싶지 않습니다. 루트에 들어가면 /root/.bashrc
자동으로 실행되도록 어떻게 설정합니까?
답변1
첫째,
sudo root
유효한 명령이라도 있습니까? (sudo -s
또는sudo -i
그럴 것입니다.)나는 내 것을 편집하는 것을 선호한다소유하다
.bashrc
루트 대신. 예를 들면 다음과 같습니다.if (( $UID == 0 )); then PS1="$RED$UNDERLINE" else PS1="$GREEN" fi PS1="$PS1\u@\h:\w\$$DEFAULT "
sudo -i
자신의 것 대신 루트의 rcfile을 읽도록 하는 데 사용할 수 있습니다 .
답변2
sudo가 새 사용자의 환경 변수가 아닌 원래 사용자의 환경 변수를 사용하도록 구성된 것 같습니다.
env_reset and env_keep options in /etc/sudoers
다음을 사용하여 환경 변수를 대상 사용자의 변수로 설정 하거나 명시적으로 재설정합니다 -H
.
sudo -H -u root