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

一般ユーザーにのみ有効で、rootユーザーには無効です。なぜですか?いつも私に戻りますPS1 =\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ここに画像の説明を入力してください。

答え1

次のプロンプトsuはnot/home/maxdmなので、このコマンドは環境変数の値をrootユーザーのホームディレクトリに変更できること~を意味します。suHOME/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最初に不変性をキャンセルしない限り、ユーザーのホームディレクトリが削除されるのを防ぎます。)

関連情報