Heim > Artikel > System-Tutorial > Geheimnisse des Linux-Befehls sudo: 10 Tipps zur Verbesserung von Effizienz und Sicherheit
sudo ist ein sehr leistungsfähiger und häufig verwendeter Befehl in Linux-Systemen. Er ermöglicht es normalen Benutzern, bestimmte Befehle oder Programme als Superuser (Root) auszuführen. Dadurch wird verhindert, dass sich Benutzer direkt beim Root-Konto anmelden, wodurch die Systemsicherheit und -stabilität verbessert wird. Wussten Sie jedoch, dass der Befehl sudo viele versteckte Funktionen und Tricks hat? In diesem Artikel werden Ihnen 10 Tipps zum Einrichten von sudo unter Linux vorgestellt, damit Sie sudo-Befehle besser zum Erledigen verschiedener Aufgaben nutzen können.
sudo ermöglicht es einem Benutzer, durch die Sicherheitsrichtlinie festgelegte Befehle als Root (oder eines anderen Benutzers) auszuführen: Es liest und analysiert /etc-Sudoer, findet den aufrufenden Benutzer und seine Berechtigungen und fordert dann den aufrufenden Benutzer zur Eingabe eines Passworts auf (normalerweise das des Benutzers). Passwort, es kann aber auch das Passwort des Zielbenutzers sein, oder Sie können NOPASSWD verwenden, um die Passwortüberprüfung abzubrechen), danach erstellt sudo einen Unterprozess, in dem setuid() aufgerufen wird, um als nächstes zum Zielbenutzer zu wechseln, der eine Shell ausführt oder Der obige Unterprozess Der als Argument angegebene Befehl in .
Nachfolgend finden Sie zehn Dateikonfigurationen /etc/sudoers, mit denen Sie das Verhalten des Befehls sudo mithilfe von Standardeinträgen ändern können.
sudo cat /etc/sudoers | less
Dies ist der Pfad, der für jede Befehlsausführung mit sudo verwendet wird. Er ist aus zwei Gründen wichtig:
Wird verwendet, wenn der Systemadministrator nicht darauf vertraut, dass der Sudo-Benutzer über eine sichere PATH-Umgebungsvariable verfügt
Um „Root-Pfad“ und „Benutzerpfad“ zu trennen, sind nur Benutzer, die durch exempt_group definiert sind, von dieser Einstellung nicht betroffen.
Um es festzulegen, fügen Sie die Zeile hinzu:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
2. Aktivieren Sie sudo in der TTY-Benutzer-Anmeldesitzung
Um Sudo-Aufrufe von einem echten TTY aus zu ermöglichen, anstatt über Methoden wie Cron- oder CGI-Bin-Skripte, fügen Sie die folgende Zeile hinzu:
Defaults requiretty
3. Führen Sie den Sudo-Befehl mit pty aus
Manchmal kann ein Angreifer sudo verwenden, um ein Schadprogramm (z. B. einen Virus oder eine Malware) auszuführen, das erneut einen Hintergrundprozess auslöst, der auf dem Endgerät des Benutzers verbleibt, selbst nachdem die Ausführung des Hauptprogramms abgeschlossen ist.
Um dies zu vermeiden, können Sie sudo mithilfe des Parameters use_pty so konfigurieren, dass nur andere Befehle von psuedo-pty ausgeführt werden, unabhängig davon, ob das E/A-Protokoll aktiviert ist, wie unten gezeigt:
Defaults use_pty1
4. Sudo-Protokolldatei erstellen
Standardmäßig erfolgen Sudo-Protokolle über syslog(3). Um jedoch eine benutzerdefinierte Protokolldatei anzugeben, verwenden Sie den Protokolldateiparameter wie:
Defaults logfile="/var/log/sudo.log"
Um den Hostnamen und das vierstellige Jahr in einer benutzerdefinierten Protokolldatei zu protokollieren, verwenden Sie die Parameter log_host bzw. log_year wie folgt:
Defaults log_host, log_year, logfile="/var/log/sudo.log"
5. Sudo-Befehlseingabe/-ausgabe aufzeichnen
Die Parameter log_input und log_output ermöglichen es sudo, Befehle in einem Pseudo-TTY auszuführen und alle Benutzereingaben und alle an den Bildschirm gesendeten Ausgaben zu protokollieren.
Das Standard-E/A-Protokollverzeichnis ist /var/log/sudo-io. Wenn eine Sitzungsseriennummer vorhanden ist, wird diese in diesem Verzeichnis gespeichert. Sie können ein benutzerdefiniertes Verzeichnis über den Parameter iolog_dir angeben.
Defaults log_input, log_output1
Unterstützt einige Escape-Sequenzen, wie z. B. %{seq}, die zu einer monoton ansteigenden Sequenznummer zur Basis 36 erweitert werden, wie z. B. 000001, wobei alle zwei Ziffern verwendet werden, um ein neues Verzeichnis zu bilden, z. B. 00/00/01, wie im folgenden Beispiel gezeigt:
[root@linuxprobe ~]# cd /var/log/sudo-io/ [root@linuxprobe sudo-io]# ll total 8 drwx------ 3 root root 4096 Jan 12 18:58 00 -rw------- 1 root root 7 Jan 12 19:08 seq [root@linuxprobe sudo-io]# cd 00/00/06/ [root@linuxprobe 06]# ls log stderr stdin stdout timing ttyin ttyout [root@linuxprobe 06]# cat log 1484219333:root:root::/dev/pts/0 /root /bin/bash
6. Sudo-Benutzer erklären
Um dem Sudo-Benutzer die Passwortverwendung im System beizubringen, verwenden Sie den Lecture-Parameter wie unten gezeigt.
Es gibt 3 mögliche Werte:
immer – immer mit einem Benutzer sprechen.
einmal – wird nur verwendet, wenn der Benutzer den sudo-Befehl zum ersten Mal ausführt (wird verwendet, wenn kein Wert angegeben ist)
nie – Informieren Sie Benutzer niemals.
Defaults lecture="always"
Außerdem können Sie mit dem Parameter „lecture_file“ eine benutzerdefinierte Vorlesungsdatei einrichten, indem Sie die entsprechende Nachricht in die Datei eingeben:
Defaults lecture_file="/path/to/file"
7. Benutzerdefinierte Meldung anzeigen, wenn ein falsches Sudo-Passwort eingegeben wird
Wenn der Benutzer ein falsches Passwort eingibt, wird eine bestimmte Meldung in der Befehlszeile angezeigt. Die Standardnachricht lautet „Entschuldigung, versuchen Sie es erneut“. Sie können die Nachricht mithilfe des Parameters badpass_message wie folgt ändern:
Standardwerte badpass_message=“Passwort ist falsch, bitte versuchen Sie es erneut, danke!“
8. Sudo-Passwort-Versuchslimit erhöhen
Mit dem Parameter passwd_tries wird angegeben, wie oft der Benutzer versucht, das Passwort einzugeben. Der Standardwert ist 3:
Defaults passwd_tries=5
9. Lassen Sie sich von Sudo auffordern, wenn Sie ein falsches Passwort eingeben
Defaults insults
10. Erfahren Sie mehr über die Sudo-Konfiguration
http://blog.csdn.net/wh211212/article/details/52923673
Das obige ist der detaillierte Inhalt vonGeheimnisse des Linux-Befehls sudo: 10 Tipps zur Verbesserung von Effizienz und Sicherheit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!