Android

Sudo Befehl unter Linux

Linux Terminal und Bash Grundlagen Teil 4 - Benutzerrechte, Root und Sudo

Linux Terminal und Bash Grundlagen Teil 4 - Benutzerrechte, Root und Sudo

Inhaltsverzeichnis:

Anonim

Mit dem Befehl sudo können Sie Programme als anderer Benutzer ausführen, standardmäßig als Root-Benutzer. Wenn Sie viel Zeit in der Befehlszeile verbringen, ist sudo einer der Befehle, die Sie häufig verwenden werden.

Die Verwendung von sudo anstelle der Anmeldung als root ist sicherer, da Sie einzelnen Benutzern eingeschränkte Administratorrechte gewähren können, ohne dass sie das root-Passwort kennen.

In diesem Lernprogramm wird die Verwendung des Befehls sudo erläutert.

Sudo installieren (sudo Befehl nicht gefunden)

Das sudo-Paket ist auf den meisten Linux-Distributionen vorinstalliert.

Um zu überprüfen, ob das sudo-Paket auf Ihrem System installiert ist, öffnen Sie Ihre Konsole, geben Sie sudo und drücken Sie die Enter . Wenn Sie sudo installiert haben, zeigt das System eine kurze Hilfemeldung an, andernfalls wird der sudo command not found .

Wenn sudo nicht installiert ist, können Sie es einfach mit dem Paketmanager Ihrer Distribution installieren.

Installieren Sie Sudo unter Ubuntu und Debian

apt install sudo

Installieren Sie Sudo unter CentOS und Fedora

yum install sudo

Benutzer zu Sudoern hinzufügen

Bei den meisten Linux-Distributionen ist das Gewähren des sudo-Zugriffs standardmäßig so einfach wie das Hinzufügen des Benutzers zur sudo-Gruppe, die in der sudoers Datei definiert ist. Mitglieder dieser Gruppe können jeden Befehl als root ausführen. Der Name der Gruppe kann von Verteilung zu Verteilung unterschiedlich sein.

Auf RedHat-basierten Distributionen wie CentOS und Fedora lautet der Name der sudo-Gruppe wheel . So fügen Sie den Benutzer dem Gruppenlauf hinzu:

usermod -aG wheel username

Unter Debian, Ubuntu und ihren Derivaten wird Mitgliedern der Gruppe sudo der sudo-Zugriff gewährt:

usermod -aG sudo username

Das Root-Benutzerkonto in Ubuntu ist aus Sicherheitsgründen standardmäßig deaktiviert, und Benutzer werden aufgefordert, Systemverwaltungsaufgaben mit sudo auszuführen. Der vom Ubuntu-Installationsprogramm erstellte Erstbenutzer ist bereits Mitglied der sudo-Gruppe. Wenn Sie also Ubuntu ausführen, besteht die Möglichkeit, dass der Benutzer, als der Sie angemeldet sind, bereits über sudo-Berechtigungen verfügt.

linuxize Sie beispielsweise linuxize , damit der Benutzer linuxize nur den Befehl mkdir als sudo mkdir kann:

sudo visudo

und füge die folgende Zeile hinzu:

linuxize ALL=/bin/mkdir

Auf den meisten Systemen wird mit dem Befehl /etc/sudoers Datei /etc/sudoers mit dem Texteditor vim /etc/sudoers . Wenn Sie noch keine Erfahrung mit vim haben, lesen Sie unseren Artikel zum Speichern einer Datei und zum Beenden des vim-Editors.

Sie können Benutzern auch erlauben, sudo-Befehle auszuführen, ohne ein Kennwort einzugeben:

linuxize ALL=(ALL) NOPASSWD: ALL

So verwenden Sie Sudo

Die Syntax für den Befehl sudo lautet wie folgt:

sudo OPTION.. COMMAND

Der Befehl sudo verfügt über viele Optionen, die sein Verhalten steuern. In der Regel wird sudo jedoch in seiner einfachsten Form ohne Optionen verwendet.

Um sudo zu verwenden, stellen Sie dem Befehl einfach sudo :

sudo command

Wobei command der Befehl ist, für den Sie sudo verwenden möchten.

Sudo liest die Datei /etc/sudoers und prüft, ob der aufrufende Benutzer mit sudo assess /etc/sudoers ist. Wenn Sie sudo zum ersten Mal in einer Sitzung verwenden, werden Sie aufgefordert, das Benutzerkennwort einzugeben, und der Befehl wird als root ausgeführt.

Um beispielsweise alle Dateien im Verzeichnis /root aufzulisten, würden Sie Folgendes verwenden:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

Passwort-Timeout

Standardmäßig werden Sie von sudo aufgefordert, Ihr Kennwort nach fünf Minuten Inaktivität von sudo erneut einzugeben. Sie können das Standardzeitlimit ändern, indem Sie die sudoers Datei sudoers . Öffne die Datei mit visudo :

sudo visudo

Legen Sie das Standardzeitlimit fest, indem Sie die folgende Zeile hinzufügen, wobei 10 das in Minuten angegebene Zeitlimit ist:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

Führen Sie einen Befehl als anderer Benutzer als Root aus

Es besteht die falsche Auffassung, dass sudo nur verwendet wird, um einem regulären Benutzer Root-Berechtigungen zu erteilen. Tatsächlich können Sie sudo , um einen Befehl als beliebiger Benutzer auszuführen.

Mit der Option -u können Sie einen Befehl als angegebener Benutzer ausführen.

Im folgenden Beispiel verwenden wir sudo , um den whoami Befehl als Benutzer "richard" auszuführen:

sudo -u richard whoami

Der whoami Befehl gibt den Namen des Benutzers aus, der den Befehl whoami :

richard

So leiten Sie mit Sudo um

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

Dies liegt daran, dass die Umleitung „ > “ der Ausgabe unter dem Benutzer erfolgt, bei dem Sie angemeldet sind, nicht unter dem von sudo angegebenen Benutzer. Die Umleitung erfolgt, bevor der Befehl sudo aufgerufen wird.

Eine Lösung besteht darin, eine neue Shell als root mit sudo sh -c aufzurufen:

sudo sh -c 'echo "test" > /root/file.txt'

Eine andere Möglichkeit besteht darin, die Ausgabe als regulärer Benutzer an den Befehl tee weiterzuleiten, wie unten gezeigt:

echo "test" | sudo tee /root/file.txt

Fazit

Sie haben gelernt, wie Sie den Befehl sudo und neue Benutzer mit sudo-Berechtigungen erstellen.

terminal sudo