Linux MINT20 "Ulyana"는 PS1 루트 설정을 유지하지 않습니다

Linux MINT20 "Ulyana"는 PS1 루트 설정을 유지하지 않습니다

현재 /etc/bash.bashrcPS1 설정은 다음과 같습니다 ~/.bashrc.

if [[ ${EUID} == 0 ]]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;36m\] \W \$\[\033[00m\] '
    else
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;36m\] \w \$\[\033[00m\] '
fi

일반 사용자에게만 유효하고 루트 사용자에게는 유효하지 않습니다. 이유는 무엇입니까? 항상 나에게 돌아옵니다 PS1=\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 여기에 이미지 설명을 입력하세요.

답변1

다음 프롬프트 su는 not /home/maxdm이므로 이 명령이 환경 변수의 값을 루트 사용자의 홈 디렉터리로 변경할 수 있음 ~을 의미합니다 .suHOME/root

이는 루트로 실행된 쉘 명령이 su실제로 실행된 것이지 , 사용자 정의 PS1 설정이 실행되지 않았 /root/.bashrc음을 의미합니다./home/maxdm/.bashrc

.bashrc기본적으로 사용자별 파일을 갖고 싶지 않은 경우 파일을 삭제하거나 다른 이름으로 이동할 수 있습니다. 시스템의 모든 기존 사용자에 대해 이 작업을 수행하려면 다음 줄을 사용하세요.

for userhome in $(cut -d : -f 6 /etc/passwd); do [ -f $userhome/.bashrc ] && mv $userhome/.bashrc $userhome/bashrc.disabled; done

나중에 생성하는 새 사용자의 자동 추가를 중지하려면 .bashrc새 사용자의 홈 디렉터리 템플릿에서 파일을 삭제하거나 이름을 바꾸면 됩니다 /etc/skel.

mv /etc/skel/.bashrc /etc/skel/bashrc.disabled

사용자의 사용자 정의 기능을 차단하는 것은 .bashrc일반적인 요청이 아닙니다. 일반적으로 사용자의 콘텐츠는 .bashrc시스템 관리자의 업무가 아닌 사용자의 업무로 간주됩니다. 하지만 어떤 이유로든 이 작업을 수행해야 하는 경우 빈 파일을 배치하고 .bashrc변경할 수 없도록 만드는( chattr +i .bashrc) 것이 좋습니다.

(이렇게 하면 userdel -r먼저 불변성을 취소하지 않는 한 사용자의 홈 디렉토리가 삭제되는 것을 방지할 수 있습니다.)

관련 정보