
現在の/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
一般ユーザーにのみ有効で、rootユーザーには無効です。なぜですか?いつも私に戻りますPS1 =\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
答え1
次のプロンプトsu
はnot/home/maxdm
なので、このコマンドは環境変数の値をrootユーザーのホームディレクトリに変更できること~
を意味します。su
HOME
/root
これは、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
最初に不変性をキャンセルしない限り、ユーザーのホームディレクトリが削除されるのを防ぎます。)