Ich frage mich, ob es eine Möglichkeit gibt, einen Alias einzufügen, wenn Sie mit sudo zum Root-Profil wechseln.
Ich denke dabei an Folgendes:
sshLogin@linuxVM /home/sshLoginUser/> sudo su -x "alias goHome='cd /home/sshLoginUser/'"
root@linuxVM /home/OtherDir/> goHome
root@linuxVM /home/sshLoginUser/>
Ich verwende eine VM-Box in der Cloud, um einige Vorgänge einzurichten und auszuführen, und möchte eventuell weitere Aliase für sich wiederholende Aufgaben hinzufügen.
Idealerweise möchte ich eine Datei sudo su
erstellen source
, die meine Sammlung von Aliasnamen und Funktionen enthält.
Antwort1
Es ist wichtig zu verstehen, dass dies sudo
keine Shell-Erweiterung durchführt; es führt einen Befehl aus. Es gibt wahrscheinlich zwei Lösungen für das, was Sie tun möchten, jede mit ihren eigenen Vor-/Nachteilen:
1 alias hop='sudo id'
: lass das sudo
Teil des Alias sein oder
2 sudo -s
(ohne Befehl), wodurch eine interaktive Shell gestartet und gelesen wird /root/.bashrc
.
Antwort2
[tom@alarm ~]$ sudo -i
[root@alarm ~]# tail -n 1 .bashrc
alias goHome="cd /home/$SUDO_USER"
[root@alarm ~]# goHome
[root@alarm tom]# pwd
/home/tom
[root@alarm tom]#
Wenn die „integrierten“ Umgebungsvariablen für Ihren Fall nicht ausreichen, können Sie sudo auch so einrichten, dass einige benutzerdefinierte Variablen beibehalten werden. Beispiel:
CERTAINFILE="/home/$USER/different_name" sudo -i --preserve-env=CERTAINFILE