Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Admin-Rechte (sudo)

Ist man als normaler Benutzer angemeldet kann ein Befehl mit Administrator-Rechten ausgeführt werden, indem sudo (superuser do) vorangestellt wird. Da macOS ein UNIX-basiertes System ist, sind viele Systembefehle nur mit Admin-Rechten ausführbar. Sie sind auch erforderlich für den Zugriff auf geschützte Systemdateien und -einstellungen.

1 Syntax

sudo <befehl> [optionen] [argumente]

Bei der ersten Ausführung von sudo wird nach dem Administratorpasswort gefragt.

2 Beispiele

Ordner /usr/local/test mit Administratorrechten erstellen:

sudo mkdir /usr/local/test

Systemverzeichnisse ändern:

sudo nano /etc/hosts

→ Bearbeitung der Host-Datei, um z.  B. Webseiten umzuleiten.

Dienste starten/stoppen:

sudo launchctl load /Library/LaunchDaemons/meindienst.plist

Systemweite Berechtigungen ändern:

sudo chmod 755 /usr/local/bin/meinprogramm

Dateien löschen, die geschützt sind:

sudo rm -rf /Pfad/zur/Datei

caution

Den Befehl sudo sollte man nur verwenden, wenn man genau weiß, was man tut. Eine falsche Verwendung kann das System beschädigen!

3 Root-Shell und Shell mit Root-Rechten

sudo speichert die Authentifizierung kurzfristig (standardmäßig 5 Minuten = 300 Sekunden). Für häufige Admin-Aufgaben eignet sich eine Root-Shell (sudo -i) oder eine Shell mit Root-Rechten (sudo -s).

3.1 Root-Shell (sudo -i = login shell as root)

Es wird simuliert, dass man als Root-Benutzer eingeloggt ist, fast wie bei einem echten Root-Login.

Wichtige Eigenschaften:

  • Es werden die Umgebungsvariablen des Root-Benutzers geladen (PATH, HOME, usw.).
  • Man landet im Home-Verzeichnis des Root-Benutzers (/var/root).
  • Es werden die Shell-Startdateien vom Root-Benutzer genutzt (.profile und .bashrc bzw. .zshrc)
sudo -i
  • Prompt wechselt, z. B. von cgroening@macbook ~ % zu macbook:~ root#
  • echo $HOME zeigt den Ordner /var/root

3.2 Shell mit Root-Rechten (sudo -s = run shell as root)

Man erhält eine Shell mit Root-Rechten.

Aber:

  • Die eigenen Umgebungsvariablen bleiben aktiv.
  • Man verbleibt im aktuellen Benutzerverzeichnis.
  • Die Startdateien des Root-Benutzers werden nicht geladen.
sudo -s
  • Prompt wechselt, z. B. von cgroening@macbook ~ % zu root@macbook ~ #
  • echo $HOME zeigt den Ordner /Users/cgroening

3.3 Zusammenfassung

OptionShelltypVerzeichnisUmgebungs-
variablen
Startdateien
geladen?
Prompt
-Normale ShellBenutzer-Homecgroening@macbook ~ %
sudo -iLogin-ShellRoot-HomeRootJamacbook:~ root#
sudo -sNon-LoginBenutzer-HomeEigeneNeinroot@macbook ~ #

info

sudo -i vs sudo -s

  • Will man komplett wie Root arbeiten, inklusive PATH & HOMEsudo -i
  • Willst man nur temporär Root-Rechte, aber mit der eigenen Umgebung → sudo -s

4 Übersicht

BefehlFunktion
sudo <befehl>Führt einen Befehl als Administrator aus
sudo -iÖffnet eine Root-Shell
sudo -sÖffnet Shell mit Root-Rechten
sudo !!Wiederholt letzten Befehl mit sudo
sudo -vErneuert den sudo-Timer, ohne einen Befehl auszuführen
sudo -kLöscht sofort alle gespeicherten Authentifizierungen
exitVerlässt die Root-Shell bzw. Shell mit Root-Rechten