현재 /etc/bash.bashrc
PS1 설정은 다음과 같습니다 ~/.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
이므로 이 명령이 환경 변수의 값을 루트 사용자의 홈 디렉터리로 변경할 수 있음 ~
을 의미합니다 .su
HOME
/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
먼저 불변성을 취소하지 않는 한 사용자의 홈 디렉토리가 삭제되는 것을 방지할 수 있습니다.)