Wie melde ich mich als Root an und ändere meine Eingabeaufforderung?

Wie melde ich mich als Root an und ändere meine Eingabeaufforderung?

Ich verwende Ubuntu 10.04 und Bash. Ich möchte in den Root-Zugriff wechseln und meine Eingabeaufforderung in unterstrichene rote Zeichen ändern lassen, um anzuzeigen, dass ich Root bin. Wenn ich in der Bash-Eingabeaufforderung Folgendes eingebe:

$ sudo bash

dann gehe ich in den Root-Zugriff, aber meine Eingabeaufforderung ändert sich nicht. /root/.bashrcIch habe:

RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '

Diese Datei wird jedoch nicht gelesen. Damit sie gelesen wird, muss ich in der Eingabeaufforderung Folgendes eingeben:

# . /root/.bashrc

was ich nicht tun möchte. Wie richte ich es ein, damit /root/.bashrces automatisch ausgeführt wird, wenn ich mich als Root anmelde?

Antwort1

  • Erstens: Ist das sudo rootüberhaupt ein gültiger Befehl? ( sudo -sOder sudo -iwäre es einer.)

  • Ich bevorzuge die Bearbeitung meinereigen .bashrcanstelle von root. Sie können zum Beispiel haben,

    if (( $UID == 0 )); then
        PS1="$RED$UNDERLINE"
    else
        PS1="$GREEN"
    fi
    PS1="$PS1\u@\h:\w\$$DEFAULT "
    
  • Sie können es verwenden sudo -i, um zu erreichen, dass die RC-Dateien von Root statt Ihren gelesen werden.

Antwort2

Scheint, als ob sudo so konfiguriert ist, dass die Umgebungsvariablen der ursprünglichen Benutzer und nicht die neuen verwendet werden.

Entweder Sie setzen die env_reset and env_keep options in /etc/sudoersoder Sie setzen die Umgebungsvariablen explizit auf die des Zielbenutzers zurück mit -H: sudo -H -u root

verwandte Informationen