Benutzerdefinierte PS1 nach Verwendung von sudo su aktiviert

Benutzerdefinierte PS1 nach Verwendung von sudo su aktiviert

Ich habe ein Skript in mein .bash_profile-Nicht-Root-Konto auf meiner CentOS-Linux-Maschine eingefügt, um meine PS1 nach sudo su zu ändern, aber da sudo su eigentlich eine neue Sitzung erstellt, wird das Skript natürlich gestoppt und meine PS1 bleibt gleich, obwohl mein .bash_profile sagt, dass ich sie ändern soll. Daran ist nichts falsch, aber gibt es eine Methode, um nach sudo su einen Befehl auszuführen (in meinem Fall, um meine PS1 zu ändern)? Ich habe versucht, das Skript auch in .bashrc einzufügen, und dasselbe.

Antwort1

Stapeln sudoführt sumeiner Meinung nach zu einer Unordnung.

Der für mich zuverlässigste Weg, die richtige Umgebung für Root zu erstellen, einschließlich der Einstellung des richtigen Pfads und anderer Einstellungen aus den relevanten Dateien, /root/istsudo -i

Bitte lesen Sie die Manualpagesman suUndman sudoweil es jede Menge Feinheiten gibt, wenn PATH und andere Sitzungs- und Umgebungsvariablen standardmäßig oder durch bestimmte Schalter geändert werden oder nicht.

Beachten Sie den Unterschied zwischen su -und suund beispielsweise die Tatsache, dass sudo normalerweise so konfiguriert ist, /etc/sudoersdass bestimmte Umgebungsvariablen unterdrückt werden ...

Dieser Tisch(und der gesamte Artikel) zeigt einige der Unterschiede zwischen auf den ersten Blick ähnlichen Befehlen:

                                     corrupted by user's 
        HOME=/root  uses root's PATH     env vars
sudo -i     Y       Y[2]                 N
sudo -s     N       Y[2]                 Y
sudo bash   N       Y[2]                 Y
sudo su     Y       N[1]                 Y


[1] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    probably set by /etc/environment
[2] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

verwandte Informationen