Ausführen von Kommandos als Superuser mit sudo
- WAS?
- Lernen Sie die grundlegenden Konzepte von - sudokennen und erfahren Sie, wie Sie es als normaler Benutzer verwenden.
- WARUM?
- Für bestimmte Kommandos sind Administratorrechte erforderlich. Mit dem Kommando - sudoist es möglich, ein bestimmtes Kommando mit Administratorrechten auszuführen.
- AUFWAND
- Es dauert bis zu 20 Minuten, diesen Artikel zu lesen. Bei einer bestimmten Frage können Sie direkt zum entsprechenden Kapitel springen. 
- ZIEL
- Verstehen der grundlegenden Konzepte von - sudound Ausführen von Kommandos mit- sudofür bestimmte Anwendungsfälle.
- ANFORDERUNGEN
- root- oder- sudo-Rechte. Diese sind nur verfügbar, wenn Sie der Administrator des Systems sind. Weitere Informationen hierzu finden Sie im Abschnitt 1, „Grundlegende Konzepte von- sudo“.
- Das Paket sudo muss installiert sein. Dieses Paket ist standardmäßig in SLE Micro verfügbar. 
 
1 Grundlegende Konzepte von sudo #
      Lernen Sie die grundlegenden Konzepte von sudo und die Funktionsweise auf SLE Micro-Systemen kennen.
      
sudo ist ein Linux-Kommando, mit dem es möglich ist, Programme vorübergehend als ein anderer Benutzer auszuführen. Es ist die Abkürzung für substitute user and do und borgt sich die Rechte eines anderen Benutzers, zum Beispiel des root-Benutzers. Auf diese Weise können Sie Systemverwaltungsaufgaben mit sudo erledigen, ohne sich als root anzumelden.
  
1.1 sudo auf Linux-Systemen allgemein #
    Als normaler Benutzer unter Linux haben Sie eingeschränkte Berechtigungen, die für die meisten Aufgaben ausreichend sind. Der root-Benutzer ist der Linux-Superuser und das Äquivalent zum Administrator.
  
Mit sudo können bestimmte (Nicht-root-)Benutzer oder eine Gruppe von Benutzern privilegierte Aufgaben ausführen, z. B. Systemfunktionen als root oder als ein anderer Benutzer aufrufen. Über eine Konfigurationsdatei kann der Systemadministrator steuern, welche Benutzer sudo-Kommandos ausführen dürfen und für welche Aufgaben.
  
1.2 sudo auf SLE Micro-Systemen #
    Aus Sicherheitsgründen ist der normale Benutzer auf allen SLE Micro-Systemen vom root-Benutzer getrennt. Als normaler Benutzer können Sie nicht in Systemverzeichnisse schreiben oder Programme installieren. Jeder Benutzer mit Zugriff auf das root-Passwort kann diese Rechte erlangen und das System versehentlich oder böswillig beschädigen.
  
Ein Beispiel: Sie sind als normaler Benutzer angemeldet und rufen versehentlich eine bösartige Website auf. Ein Angreifer kann hinter Ihrem Rücken keine Malware auf Ihrem System installieren, weil Sie als normaler Benutzer angemeldet sind, also ohne jegliche Administratorberechtigungen.
    Wie oben erwähnt, wird es aus Sicherheitsgründen nicht empfohlen, dauerhaft als root-Benutzer angemeldet zu bleiben. Es ist sicherer, wenn Sie mit Ihrem regulären Benutzer angemeldet bleiben und ein eingeschränktes Kommando mit einem vorangestellten sudo ausführen.
  
sudo sind Administratorrechte erforderlich
      Auf einem Einzelplatzrechner, auf dem Sie ein eigenes root-Passwort festgelegt haben, verfügen Sie über die erforderlichen Rechte, um Ihr System mit Hilfe des sudo-Kommandos zu verwalten und die sudo-Einstellungen selbst zu konfigurieren.
    
      Weitere Informationen zur sudo-Konfiguration finden Sie in https://documentation.suse.com/smart/systems-management/html/sudo-configure-superuser-privileges/index.html.
    
      In einer Umgebung mit mehreren Benutzern, wie zum Beispiel in Unternehmen, werden die sudo-Rechte von einem Systemadministrator verwaltet und die Berechtigungen des root-Benutzers können eingeschränkt werden. Unter Umständen dürfen Sie bestimmte Systemverzeichnisse oder Dateien nicht ändern, selbst wenn Sie das Kommando mit sudo ausführen.
    
1.3 Funktionsweise von sudo #
      Wenn Sie ein Kommando ausführen, dem sudo vorangestellt ist, fordert das System Sie auf, das Passwort für das root-Konto einzugeben. Nach der erfolgreichen Authentifizierung wird das Kommando mit Superuser-Rechten ausgeführt.
    
      Je nach sudo-Konfiguration bleiben die erweiterten Rechte für eine bestimmte Zeit bestehen, und zwar so lange, wie Sie in derselben Terminalsitzung arbeiten. Sie müssen also das Passwort nicht erneut eingeben, wenn Sie das nächste sudo-Kommando ausführen.
    
    Für die Ausführung eines Kommandos mit sudo gilt die folgende Syntax:
  
>sudo [command]
    Das folgende Beispiel erklärt, wie das sudo-Kommando verwendet wird, um das YaST-Kontrollzentrum direkt im Terminal zu öffnen. Zum Öffnen von YaST sind Administratorrechte erforderlich und daher funktioniert es nur mit dem sudo-Kommando.
  
sudo #>yastAbsolute path to 'yast' is '/usr/sbin/yast', so running it may require superuser privileges (eg. root).1>sudoyast[sudo] password for root:2
| 
            Wird nur das Kommando  | |
| 
            Wenn Sie dem Kommando  Nach erfolgreicher Authentifizierung wird das geöffnet. | 
            Die erhöhten Rechte bleiben für bestimmte Zeit erhalten, sodass Sie das Passwort für das nächste sudo-Kommando nicht erneut eingeben müssen.
           
2 Ausführen eines Kommandos, dem sudo vorangestellt ist #
        Als normaler Benutzer können Sie alle Kommandos als root ausführen, indem Sie sudo vor das Kommando setzen. Dadurch werden Sie aufgefordert, das root-Passwort anzugeben. Bei erfolgreicher Authentifizierung wird daraufhin das Kommando als root ausgeführt.
       
    Wenn Sie ein Kommando ausführen, dem sudo vorangestellt ist, fordert das System Sie auf, das Passwort für das root-Konto einzugeben. Nach der erfolgreichen Authentifizierung wird das Kommando mit Superuser-Rechten ausgeführt.
  
    Je nach sudo-Konfiguration bleiben die erweiterten Rechte für eine bestimmte Zeit bestehen, und zwar so lange, wie Sie in derselben Terminalsitzung arbeiten. Sie müssen also das Passwort nicht erneut eingeben, wenn Sie das nächste sudo-Kommando ausführen.
  
sudo vorangestellt ist #
      Im Folgenden wird beschrieben, wie Sie mit dem Kommando sudo eine Datei in ein Verzeichnis kopieren, für das lediglich der root-Benutzer die Bearbeitungsrechte besitzt.
    
- Öffnen Sie ein Terminal und erstellen Sie eine Testdatei mit: - >- touch test.txt
- Versuchen Sie, die Datei in das Verzeichnis - /usr/local/bin/zu kopieren:- >- cp test.txt /usr/local/bin- Das Terminal gibt beispielsweise Folgendes zurück: - cp: cannot create regular file '/usr/local/bin/test.txt': Permission denied - Diese Meldung wird auch angezeigt, wenn die erforderlichen Rechte nicht für - sudoerteilt wurden.
- Geben Sie nun dasselbe Kommando ein und stellen Sie - sudovoran:- >- sudo- cp test.txt /usr/local/bin
- Sie werden zur Eingabe des - root-Passworts aufgefordert. Beachten Sie, dass das Passwort bei der Eingabe weder als Klartext noch durch maskierende Zeichen angezeigt wird.- [sudo] password for root: 
- Nach der erfolgreichen Authentifizierung wird die Testdatei in - /usr/local/binkopiert.
    Damit haben Sie Ihr erstes sudo-Kommando ausgeführt.
  
3 Gängige sudo-Kommandos #
        Wenn Sie sudo einem Kommando voranstellen, können Sie Kommandos mit erhöhten Rechten ausführen. Sie können Kommandos auch unter einem anderen Benutzer ausführen und dessen Umgebungsvariablen verwenden.
      
In diesem Abschnitt finden Sie Beispiele für gängige Kommandos, für die oft Administratorrechte erforderlich sind.
- Letztes Kommando mit sudowiederholen
- Um das letzte Kommando als Administrator zu wiederholen, führen Sie - sudo !!aus und geben Sie das Passwort ein. Ein Benutzer ohne Administratorrechte kann beispielsweise kein Verzeichnis unter dem Verzeichnis- /etc/erstellen. Zum Erstellen führen Sie- sudo !!aus.- >- mkdir /etc/test/mkdir: cannot create directory ‘/etc/test/’: Permission denied- >- sudo- !!sudo mkdir /etc/test/ [sudo] password for root:- >- ls -alrt /etc | grep testdrwxr-xr-x 1 root root 0 Apr 20 12:48 test
- Verwalten von Paketen mit sudoundzypper
- Um Kommandos zur Paketverwaltung als Administrator auszuführen, setzen Sie - sudovor das Kommando:- >- sudo- zypper [--GLOBAL-OPTIONS] <COMMAND> [--COMMAND-OPTIONS] [ARGUMENTS]- Soll beispielsweise die Containerisierungsplattform Docker CE über das offizielle Paket-Repository installiert werden, führen Sie die folgenden Kommandos mit - sudoaus:- >- sudo- zypper addrepo https://download.docker.com/linux/suse/docker-ce- >- sudo- zypper refresh- >- sudo- zypper search docker-ce- >- sudo- zypper install docker-ce- Sie müssen - sudonicht vor- zypper-Kommandos setzen, mit denen das System nicht verändert oder kein berechtigter Zugriff auf Informationen erteilt wird. Sie können beispielsweise die Repositorys für die installierten Softwarepakete auf dem System auch ohne- sudoabrufen:- >- zypper lr
- Verwalten von Systemdiensten mit sudoundsystemctl
- Auch Systeme, bei denen die Dienste mit - systemdverwaltet werden, können Sie das Kommando- systemctlmit- sudonutzen. Mit diesem Kommando starten Sie beispielsweise den Apache-Webserver neu:- >- sudo- systemctl restart apache2- Sie müssen - sudonicht vor- systemctl-Kommandos setzen, mit denen das System nicht verändert oder kein berechtigter Zugriff auf Informationen erteilt wird. Sie können beispielsweise den Status der Netzwerkverwaltung auch ohne- sudoabrufen:- >- systemctl status NetworkManager● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/NetworkManager.service.d └─NetworkManager-ovs.conf Active: active (running) since DAY YYYY-MM-DD HH:MM:SS TIMEZONE; 1h 21min ago Docs: man:NetworkManager(8) [...]
- Ändern eines Benutzerkontos mit sudoundusermod
- So ändern Sie Benutzerkonten mit dem Kommando - usermod:- >- sudo- usermod [OPTION] USERNAME- So legen Sie beispielsweise einen Zeitraum von - 30Tagen fest, nach dem das Benutzerkonto- tuxnach Ablauf des Passworts dauerhaft deaktiviert wird:- >- sudo- usermod --inactive 30 tux
- Ändern von Datei- und Verzeichnisbesitz mit sudoundchown
- Wenn Sie den Besitz von Dateien und Verzeichnissen vom aktuellen Besitzer auf einen neuen Besitzer ändern möchten, verwenden Sie: - >- sudo- chown [OPTION] [OWNER:[GROUP]] FILE- Wenn Sie - tuxden Datei- und Verzeichnisbesitz im Verzeichnis- /home/test/tux-filesgeben möchten, führen Sie das folgende Kommando aus:- >- sudo- chown tux /home/test/tux-files/ --recursive- Mit diesem Kommando können Sie die Eignungsänderung prüfen: - >- ls -alrt /home/test/tux-files/ --recursive
- Ausführen eines Kommandos als ein anderer Benutzer mit sudo -s
- Anstatt das - su-Kommando für den Wechsel zu einem anderen Benutzer und das anschließende Ausführen von Kommandos zu verwenden, können Sie auch das- sudo -s-Kommando verwenden. Eine Shell, die mit dem Kommando- sudo -sausgeführt wird, erbt die Umgebung des aktuellen Benutzers. Das Kommando- sudo -sbietet außerdem einige Funktionen zur Kontrolle der Rechte.- So führen Sie ein Kommando als ein anderer Benutzer aus: - >- sudo- -s -u USERNAME COMMAND- Standardmäßig wird das Kommando aus dem Verzeichnis des vorherigen Benutzers heraus ausgeführt, da der Zielbenutzer die Umgebung des vorherigen Benutzers erbt. - Wenn Sie beispielsweise die Dateien und Unterverzeichnisse des Verzeichnisses - /home/test/tux-files/als Zielbenutzer- tuxrekursiv auflisten möchten, führen Sie folgendes Kommando aus:- >- sudo- -s -u tux ls -alrt /home/test/tux-files/ --recursive- Wenn Sie ein Kommando mit - sudo -sals ein anderer Benutzer ausführen, wird das Kommando in Ihrem Verlauf protokolliert.
- Ausführen eines Kommandos als ein anderer Benutzer mit einer sauberen Umgebung mit sudo -i
- Beim Kommando - sudo -serbt der Zielbenutzer die Umgebung des vorherigen Benutzers. Sie können dies verhindern, indem Sie das- sudo -i-Kommando verwenden, bei dem der Zielbenutzer eine übersichtliche Umgebung erhält und im eigenen- $HOME-Verzeichnis startet.- So führen Sie ein Kommando als ein anderer Benutzer mit einer sauberen Umgebung aus: - >- sudo- -i -u USERNAME COMMAND- Das Kommando - sudo -iführt die Shell als interaktive Login-Shell des Zielbenutzers aus. Infolgedessen gibt es Shell-Startskripte wie die Dateien- .profileund- .bash_profile.- Wenn Sie beispielsweise die Dateien und Unterverzeichnisse des Verzeichnisses - /home/test/tux-files/als- tuxauflisten möchten, führen Sie das folgende Kommando aus:- >- sudo- -i -u tux ls -alrt /home/test/tux-files/- Wenn Sie ein Kommando mit - sudo -ials ein anderer Benutzer ausführen, wird das Kommando in Ihrem Verlauf protokolliert.
4 Unterschied zwischen sudo und su #
    Erfahren Sie hier, wie sich die Kommandos sudo und su unterscheiden und wann Sie welches verwenden sollten.
  
  Auf Linux-Systemen können Sie einem Kommando wahlweise sudo oder su voranstellen. In beiden Fällen können Sie Kommandos als root ausführen.
4.1 Merkmale des Kommandos sudo #
- Mit - sudokönnen Sie ein Kommando als- rootausführen. Je nach Konfiguration müssen Sie nicht das- root-Passwort eingeben, sondern nur das Passwort des Benutzers. Auf diese Weise müssen keine vertraulichen Daten an alle anderen (normalen) Benutzer weitergegeben werden.
- Mit der - sudo-Konfigurationsdatei kann der Systemadministrator steuern, welche Benutzer- sudonutzen dürfen und die Nutzung auf bestimmte Aufgaben beschränken.
- sudospeichert das Passwort für eine bestimmte Zeitspanne im Cache. Nach Ablauf dieses Zeitraums werden Sie erneut nach dem Passwort gefragt, wenn Sie das nächste- sudo-Kommando ausführen.
- Alle mit - sudoausgeführten Kommandos werden einzeln protokolliert. Die Protokolldatei zeichnet Datum und Uhrzeit, den Benutzer, der das Kommando ausgeführt hat, und das Kommando selbst auf.
4.2 Merkmale des Kommandos su #
- Mit - sukönnen Sie ein Kommando als- rootausführen, müssen jedoch das- root-Passwort angeben.
- Es kann nicht so konfiguriert werden, dass der Zugriff auf bestimmte Benutzer und Aufgaben eingeschränkt und die Rechte für jeden, der das - root-Passwort kennt, erhöht werden.
- Die Rechte werden für die Dauer der gesamten Terminalsitzung erhöht. Solange Sie in der Sitzung bleiben, werden Sie nicht noch einmal aufgefordert, das Passwort einzugeben. 
- Die mit - suausgeführten Kommandos werden nicht einzeln protokolliert, da alle Aktionen nur im Benutzerkonto protokolliert werden können.
5 Rechtliche Hinweise #
Copyright © 2006–2025 SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie im Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie im https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.