Ich habe einen Centos 5.5-Server mit eigenen Alias-Befehlen für mein Konto. Wenn ich sudo bash
diese Aliase weiterhin verwenden kann, musste ich die Aliase nicht zu den Wurzeln hinzufügen .bashrc
.
Ich habe einen anderen Server, der Centos 6.5 ist. Bei der Ausführung sudo bash
werden jedoch nicht meine Aliase des Benutzers verwendet, unter dem ich angemeldet bin. Weiß jemand, wo ich es so konfiguriere, dass es die Aliase des Benutzers enthält, bei dem ich bei der Verwendung angemeldet bin sudo bash
?
sudo sudo -V
Ausgabe undenv_keep
in der Sudoers-Manpage.Defaults !always_set_home
undDefaults !env_reset
`Antworten:
Fügen Sie Ihrem ~ / .bashrc die folgende Zeile hinzu:
Aus dem Bash-Handbuch
Bash überprüft also nur das erste Wort eines Befehls auf einen Alias, danach werden alle Wörter nicht überprüft. Das heißt, in einem Befehl wie sudo ll wird nur das erste Wort (sudo) von bash auf einen Alias überprüft, ll wird ignoriert. Wir können bash anweisen, das nächste Wort nach dem Alias (dh sudo) zu überprüfen, indem wir am Ende des Aliaswerts ein Leerzeichen einfügen.
quelle
sudo
Befehl, z. B.sudo some_alias ...
fragt OP, wie Aliase für seinen eigenen Benutzer definiert werden können, nachdem er mit zu einem anderen Benutzer gewechselt hatsudo
. Nehmen wir an, ich habesome_alias
definiert. Beisudo
derroot
Verwendungsudo su
wird eine neue Umgebung erstellt und dieser Alias ist dort nicht definiert. Es gibt den-E
Parameter dessudo
Befehls, der die Umgebung exportieren soll, aber es sieht so aus, als wären Aliase nicht Teil davon.Verwenden Sie
sudo -E
diese Option, um Ihre Umgebung zu exportieren.quelle
sudo -E bash
. Bei Verwendung mitsu
as bleibensudo -E su
die in den Benutzern definierten.bashrc
Elemente (Aliase, Eingabeaufforderung usw.) nicht erhalten, obwohl es so aussieht, als würden Umgebungsvariablen in beiden Fällen beibehalten. Ich bin mir nicht sicher, wie genau das funktioniert.