Wenn Systembenutzer alles dürften, könnten sie versehentlich beliebigen Schaden anrichten. Daher verbietet Linux standardmäßig praktisch alle Schreibzugriffe im Dateisystem außer unter „/home“ und „/tmp“. Für Installationen und Updates (unter „/usr“, „/opt“, „/snap“) sowie für Konfigurationseingriffe (hauptsächlich unter „/etc“) ist der explizite Einsatz von sudo erforderlich.
Linux: Die 10 wichtigsten Linux-Befehle für Netzwerk und Internet
Sudo: Aufgabe und Reichweite
Um bei Bedarf root-Recht zu erhalten, genügt der Befehl „sudo“. Typisch ist etwa
sudo apt upgrade
zur Systemaktualisierung unter Debian/ Ubuntu, wobei das eigene Kontokennwort erforderlich ist. Der obige Befehl entspricht genau genommen diesem Befehl:
sudo --user=root apt upgrade
Es handelt sich um einen Wechsel in das root-Konto. Da dies der häufigsten sudo-Nutzung entspricht, darf die Kontenangabe bei root entfallen. Im Prinzip wechselt sudo aber auch zu beliebigen anderen Konten (hier die Kurzform statt „–user=sepp“):
sudo -u sepp bash
Das Prinzip von sudo ist der Benutzerkontensteuerung von Windows ähnlich: Der Systembenutzer soll nur dann mit root-Recht arbeiten, wenn dies zwingend notwendig ist. Das root-Konto selbst ist bei vielen Linux-Distributionen deaktiviert (unter anderem bei allen Ubuntus), damit Benutzer erst gar nicht in die Versuchung kommen, root als Standardkontext zu verwenden. Auch dies ist analog zu Windows und dem deaktivierten „Administrator“.

Wer „sudo“ darf, ist root und Systemverwalter: Alle anderen Berechtigungen sind letztlich sekundär und mit sudo bei Bedarf jederzeit einzufordern.
IDG
Linux ist aber ein Stück strenger als Windows: Erstens ist hier die Eingabe des Systemkennworts notwendig, während Windows nur einen „Ja“-Klick fordert. Zweitens ist ein Systemkonto vom Typ „Standard“ generell nicht sudo-berechtigt. Das Konto muss den Typ „Systemverwalter“ verwenden, was eine Zugehörigkeit zur Gruppe „sudo“ impliziert.
Genau genommen ist das Verhältnis von Systemverwalter und sudo ein-eindeutig: Der Kontotyp „Systemverwalter“ erhält immer sudo-Recht und sudo-Recht ist genau die Gruppenzugehörigkeit, die ein Konto zum Systemverwalter macht. Wenn Sie Systemverwalter-Konten in der grafischen Benutzerverwaltung (sofern vorhanden) oder mit
id sepp
abfragen, werden Sie neben „sudo“ weitere Gruppenzuweisungen finden (wie „adm“, „plugdev“, „sambashare“). Diese Gruppenrechte kann sich aber jedes Konto mit sudo-Recht bei Bedarf selbst besorgen:
sudo usermod -aG plugdev sepp
Letztlich ist es allein das sudo-Recht, was ein Konto zum Systemverwalter macht.
Konfigurationsdatei „/etc/sudoers“

Konfigurationsdatei für sudo: Hier steht quantitativ recht wenig, die Relevanz ist aber kaum zu überschätzen. „root“ und die Gruppe „%sudo“ sollten alles oder viel dürfen.
IDG
Konten, Gruppen, root-Recht: Viele Desktopnutzer bekommen davon wenig zu sehen, denn das bei der Linux-Installation angelegte Erstkonto ist automatisch vom Typ „Systemverwalter“ mit sudo-Gruppenzugehörigkeit. Intimere Kenntnis kann aber den Benutzeralltag vereinfachen und ist spätestens nötig, wenn weitere Benutzerkonten angelegt werden sollen.
Die entscheidende Datei für die sudo-Nutzung ist „/etc/sudoers“, deren Bearbeitung natürlich ihrerseits root-Recht erfordert. Vor der ersten Bearbeitung dieser Datei empfiehlt es sich, mit
sudo cp /etc/sudoers /etc/sudoers.ori
eine Kopie des Originals anzulegen. Eine fehlerhafte „sudoers“ kann fatale Folgen haben, die Sie schlimmstenfalls über ein externes Livesystem und Wiederherstellen der Originaldatei beheben können.
Ein weiterer Standardtipp (auch in der „sudoers“- Datei selbst) ist die Editiermethode mit visudo. Statt eines Befehl wie
sudo nano /etc/sudoers
ist diese Methode die bessere:
sudo visudo
Visudo ist kein spezieller Editor, denn der Editor ist über Variablen oder mit
sudo update-alternatives --config editor
frei wählbar (in der Regel ist Nano voreingestellt). Vielmehr übergibt das Tool visudo den Inhalt der Datei als temporäre Datei an den Editor und macht nach dem Speichern im Editor einen Syntaxcheck (auch manuell möglich über visudo -c). Dies dient als Absicherung gegen fatale Fehler. Erst dann wird die eigentliche Systemdatei abgelegt.
Einige allgemeine Einstellungen in „/etc/ sudoers“ sind immer nützlich. Die zusätzliche Anweisung
Defaults pwfeedback
verhilft dazu, bei sudo-Kommandos die Eingabe des Systemkennworts durch Sternchen pro eingegebenem Zeichen zu beantworten. Dies erlaubt bessere Kontrolle der Eingabe. Eine weitere Anweisung im oberen Defaults-Bereich Defaults timestamp_timeout=60 befreit für ganze 60 Minuten von der Eingabe des Systemkennworts bei sudo-Befehlen (Standard sind 15 Minuten). Beachten Sie aber, dass dies nur innerhalb eines laufenden Terminals gilt. Ein neu gestartetes Terminal wird angesichts von „sudo“ das Kennwort erneut abfragen.
Die eigentlichen Konten- und Gruppenrechte (alle bezüglich sudo) sind anspruchsvoll. Die Zeile
root ALL=(ALL:ALL) ALL
sollten Sie nie grundlos ändern, damit es nach sudo im root-Kontext keinerlei Beschränkungen gibt. Die diversen „ALL“s sind in aller Kürze als „Host=(Konto:Gruppe) Befehle“ zu übersetzen und bleiben standardmäßig ohne Einschränkung. Eine naheliegende Idee, Ihrem Standardkonto etwa mit
sepp ALL=(ALL:ALL) ALL root-analoge Rechte
zuzuweisen, ist nicht sinnvoll, weil die Gruppenrechte (Standard)
%sudo ALL=(ALL:ALL) ALL
bereits dasselbe leisten, sofern „sepp“ sudoberechtigt ist (Namen mit „%“ wie „%sudo“ sind stets Gruppenberechtigungen).
Ein einzelnes Systemkonto in die Datei einzutragen, kann aber durchaus sinnvoll sein. Damit wird es möglich, für ein sudo-berechtigtes Konto alle sudo-Kennwortabfragen abzuschalten:
sepp ALL=(ALL:ALL) NOPASSWD: ALL
Diese reduzierten Kennwortabfragen lassen sich auch weniger radikal verfeinern:
sepp ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get, /usr/bin/systemctl
Das zweite Beispiel führt dazu, dass „sepp“ für einige häufig benötigte Befehle (die ein sudo erfordern) kein Kennwort mehr eingeben muss, für alle übrigen aber schon.
Achtung: Solche Anweisungen für ein einzelnes Konto müssen unterhalb der allgemeinen Gruppenrechte („%sudo ALL […]“) erfolgen, weil bei abweichenden Angaben stets die letzte Anweisung der sudoers-Datei gewinnt. Die Abweichung entsteht hier dadurch, dass die Gruppenmitglieder von „sudo“ standardmäßig nach dem Kennwort gefragt werden, das sudo-Gruppenmitglied „sepp“ hingegen nicht (oder nicht immer).
Ist auf einem System überhaupt nur ein Konto relevant, können Sie sogar noch weitergehen und mit
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
sämtlichen sudo-Konten (es gibt ja nur eines) die Kennworteingabe ersparen.
Weitere Sudo-Tipps
Permanenter root-Kontext: Ein typisches sudo-Kommando wie
sudo apt install filezilla
erledigt genau eine Aufgabe im root-Konto und kehrt dann sofort wieder zum Benutzerkonto zurück. Für umfangreichere Arbeiten als root empfiehlt sich der Aufruf
sudo -s
oder – identisch – sudo bash. Danach bleiben Sie so lange „root“, bis Sie „exit“ eingeben oder das grafische Terminalfenster schließen.
Sudoedit: Mit einem Befehl wie
sudo gedit /etc/fstab
geben Sie einem bestimmten Editor das root-Recht zur Bearbeitung einer Systemdatei. Die Alternative sudoedit oder sudo -e
sudo -e /etc/fstab
ist erstens eine Abkürzung für Editierarbeiten an Konfigurationsdateien, verwendet zweitens den Standardeditor des Terminals (häufig Nano) und dies drittens in der Konfiguration des normalen Benutzerkontos (die Datei wird dazu temporär zwischengespeichert). Für den gewünschten Editor gibt es eine eigene Umgebungsvariable, die man mit
export SUDO_EDITOR="mcedit"
in der Datei „~/.bashrc“ definieren kann.
Usermod/Gpasswd: Wie kommt ein neues Konto zur sudo-Gruppe? Wenn eine grafische Benutzerverwaltung wie unter Linux Mint vorliegt, dann einfach per Mausklick. Andernfalls hilft dies:
sudo usermod -a -G sudo sepp
Der umfangreichere Befehl für Gruppenzuweisungen ist allerdings gpasswd. Der kann nämlich
sudo gpasswd -a sepp sudo
sudo gpasswd -d sepp sudo
das sudo-Recht nicht nur gewähren („-a“), sondern bei Bedarf auch wieder entziehen („-d“).