Mit dem Befehl sudo können Sie Programme als anderer Benutzer ausführen, standardmäßig als Root-Benutzer. Wenn Sie viel Zeit auf der Befehlszeile verbringen, ist sudo einer der Befehle, die Sie ziemlich 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 Tutorial erklären wir Ihnen, wie Sie sudo
verwenden Befehl.
Installieren von Sudo (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 und geben Sie sudo
ein , und drücken Sie Enter
. Wenn Sie das System mit sudo installiert haben, wird eine kurze Hilfemeldung angezeigt. Andernfalls sehen Sie so etwas wie sudo command not found
.
Wenn sudo nicht installiert ist, können Sie es einfach mit dem Paketmanager Ihrer Distribution installieren.
Installieren Sie Sudo auf Ubuntu und Debian #
apt install sudo
Installieren Sie Sudo auf CentOS und Fedora #
yum install sudo
Hinzufügen eines Benutzers zu Sudoers #
Standardmäßig ist das Gewähren von sudo-Zugriff bei den meisten Linux-Distributionen so einfach wie das Hinzufügen des Benutzers zur sudo-Gruppe, die in sudoers
definiert ist Datei. Mitglieder dieser Gruppe können alle Befehle als root ausführen. Der Name der Gruppe kann sich von Distribution zu Distribution unterscheiden.
Auf RedHat-basierten Distributionen wie CentOS und Fedora lautet der Name der sudo-Gruppe wheel
. Führen Sie Folgendes aus, um den Benutzer zur Gruppe hinzuzufügen:
usermod -aG wheel username
Unter Debian, Ubuntu und ihren Derivaten Mitglieder der Gruppe sudo
werden mit sudo-Zugriff gewährt:
usermod -aG sudo username
Das Root-Benutzerkonto in Ubuntu ist aus Sicherheitsgründen standardmäßig deaktiviert, und Benutzern wird empfohlen, Systemverwaltungsaufgaben mit sudo auszuführen. Der anfänglich vom Ubuntu-Installer erstellte Benutzer ist bereits Mitglied der sudo-Gruppe. Wenn Sie also Ubuntu ausführen, sind die Chancen groß, dass der Benutzer, als der Sie angemeldet sind, bereits über sudo-Berechtigungen verfügt.
Um einem bestimmten Benutzer zu erlauben, nur bestimmte Programme als sudo auszuführen, fügen Sie die Benutzer den sudoers
hinzu, anstatt den Benutzer der sudo-Gruppe hinzuzufügen Datei.
Zum Beispiel, um dem Benutzer linuxize
zu erlauben um nur das mkdir
auszuführen Befehl als sudo, geben Sie ein:
sudo visudo
und fügen Sie die folgende Zeile hinzu:
linuxize ALL=/bin/mkdir
Auf den meisten Systemen ist das visudo
Befehl öffnet die Datei /etc/sudoers
Datei mit dem vim Texteditor. Wenn Sie keine Erfahrung mit vim haben, lesen Sie unseren Artikel darüber, wie man eine Datei speichert und den vim-Editor beendet.
Sie können Benutzern auch erlauben, sudo-Befehle auszuführen, ohne das Passwort einzugeben:
linuxize ALL=(ALL) NOPASSWD: ALL
So verwenden Sie Sudo #
Die Syntax für sudo
Befehl lautet wie folgt:
sudo OPTION.. COMMAND
Das sudo
Der Befehl hat viele Optionen, die sein Verhalten steuern, aber normalerweise wird er in seiner grundlegendsten Form ohne Optionen verwendet.
Um sudo zu verwenden, stellen Sie dem Befehl einfach sudo
voran :
sudo command
Wobei command
ist der Befehl, für den Sie sudo verwenden möchten.
Sudo liest den /etc/sudoers
-Datei und prüfen Sie, ob dem aufrufenden Benutzer sudo-Assessment erteilt wurde. Wenn Sie sudo zum ersten Mal in einer Sitzung verwenden, werden Sie aufgefordert, das Benutzerkennwort einzugeben, und der Befehl wird als root ausgeführt.
Zum Beispiel, um alle Dateien im Verzeichnis /root
aufzulisten Verzeichnis, das Sie verwenden würden:
sudo ls /root
[sudo] password for linuxize:
. .. .bashrc .cache .config .local .profile
Passwort-Timeout #
Standardmäßig fordert sudo Sie auf, Ihr Passwort nach fünf Minuten Inaktivität von sudo erneut einzugeben. Sie können das Standard-Timeout ändern, indem Sie die sudoers
bearbeiten Datei. Öffnen Sie die Datei mit visudo
:
sudo visudo
Legen Sie das Standard-Timeout fest, indem Sie die folgende Zeile hinzufügen, wobei 10
ist das in Minuten angegebene Timeout:
Defaults timestamp_timeout=10
Wenn Sie den Zeitstempel nur für einen bestimmten Benutzer ändern möchten, fügen Sie die folgende Zeile hinzu, wobei Benutzername der betreffende Benutzer ist.
Defaults:user_name timestamp_timeout=10
Führen Sie einen Befehl als ein anderer Benutzer als Root # aus
Es gibt eine falsche Wahrnehmung, dass sudo
wird nur verwendet, um einem normalen Benutzer Root-Berechtigungen zu erteilen. Tatsächlich können Sie sudo
verwenden um einen Befehl als beliebiger Benutzer auszuführen.
Das -u
Option ermöglicht es Ihnen, einen Befehl als angegebener Benutzer auszuführen.
Im folgenden Beispiel verwenden wir sudo
um whoami
auszuführen Befehl als Benutzer „richard“:
sudo -u richard whoami
Das whoami
Der Befehl gibt den Namen des Benutzers aus, der den Befehl ausführt:
richard
Umleitung mit Sudo #
Wenn Sie versuchen, die Ausgabe eines Befehls in eine Datei umzuleiten, für die Ihr Benutzer keine Schreibberechtigung hat, erhalten Sie die Fehlermeldung „Berechtigung verweigert“.
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
Dies geschieht, weil die Umleitung „>
“ der Ausgabe erfolgt unter dem Benutzer, mit dem Sie angemeldet sind, nicht dem mit sudo angegebenen Benutzer. Die Umleitung erfolgt vor dem sudo
Befehl wird aufgerufen.
Eine Lösung besteht darin, eine neue Shell als root aufzurufen, indem Sie sudo sh -c
verwenden :
sudo sh -c 'echo "test" > /root/file.txt'
Eine andere Möglichkeit besteht darin, die Ausgabe als normaler Benutzer an tee
zu leiten Befehl, wie unten gezeigt:
echo "test" | sudo tee /root/file.txt
Schlussfolgerung #
Sie haben gelernt, wie man sudo
verwendet Befehl und wie man neue Benutzer mit sudo-Berechtigungen erstellt.
Wenn Sie Fragen haben, können Sie gerne einen Kommentar hinterlassen.