Wie speichere ich Root-Aliase dauerhaft?

Ich habe versucht, Aliase (siehe unten) für den Root-Benutzer in .bash_profile/var/root/.bash_profile zu speichern und Terminal neu zu starten, aber es hat nicht funktioniert. Wo muss sich die .bash_profileDatei befinden, um dauerhafte Aliase im Terminal zu verwalten?

$ cat /var/root/.bash_profile
alias grep='grep --color=always'
alias net='sudo netstat -ap tcp && sudo lsof -Pn -i4'

meine spezifikationen:

sh-3.2# system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: OS X 10.8.5 (12F45)
      Kernel Version: Darwin 12.5.0
      Boot Volume: lily
      Boot Mode: Normal
      Computer Name: lily’s MacBook Air
      User Name: System Administrator (root)
      Secure Virtual Memory: Enabled
      Time since boot: 12:37
hm, nein, das hat nicht funktioniert. aber danke für den vorschlag
das hat auch nicht funktioniert. .bashrcSollte es eine im Verzeichnis geben /var/root/? Mir ist gerade aufgefallen, dass es kein Bashrc gibt
Danke. Das Sourcing der Datei funktioniert definitiv, ist aber nicht dauerhaft. Wenn ich das Terminal vollständig beende und neu starte, $ sudo suum root zu werden, sind die Aliase nicht mehr verfügbar
Danke! Verwendung .profile(nicht .bash_profile) mit $ sudo -ifunktioniert! Wenn Sie es in eine Antwort stecken, akzeptieren Sie es gerne

Antworten (2)

Der korrekte Name der Konfigurationsdatei der Standard-Root-Shell (dh sh) ist .profile. Ändern Sie also den Namen von .bash_profile in .profile:

mv /var/root/.bash_profile /var/root/.profile
source /var/root/.profile

Dies funktioniert, indem Sie sich als root in der GUI anmelden.


Wenn Sie versuchen, die Shell eines Sudoers aufzurufen, sudo suwird die .profile-Datei von root nicht abgerufen. Verwenden Sie sudo -istattdessen.

sudo ln -s "/Users/${LOGNAME}/.bash_profile" /var/root/.profile

Ergebnis:

$ sudo ls -lha /var/root/.profile
lrwxr-xr-x  1 root  wheel    24B Oct  5 12:40 /var/root/.profile -> /Users/phx/.bash_profile

Dann wird Ihr eigenes ~/.bash_profilefür root geladen, wenn Sie sudo -soder sudo -i (zusammen mit Ihren Funktionen und Aliasen) .

Ich konnte dies sudojedoch nicht für einmalige Befehle zum Laufen bringen.

Es ist unnötig zu erwähnen, dass dies einige Risiken birgt, wenn Ihr normales Konto ein Passwort von geringer Qualität hat.
Ich habe diese Antwort geschrieben, und als Sicherheitsforscher kann ich sagen, dass es auch unsicher ist. ~/.bash_profileist ein vom Benutzer beschreibbarer Speicherort, und alles darin wird während einer Shell-Sitzung auf Root-Ebene automatisch als root ausgeführt, sodass er tatsächlich zum Herstellen von Persistenz verwendet werden könnte. Zugegeben, Sie müssten wissen, dass das /var/root/profilesymbolisch mit verknüpft war ~/.bash_profile, aber es ist immer noch nicht sicher. Sag nur.