Was macht sudo service?


17

Soweit ich weiß und es scheint, dass andere Leute die gleiche Meinung haben, sudo handelt es sich um einen Befehl, der etwas mit Administratorrechten ausführt.

Wenn ich jedoch renne, sehe rcconfich diese Zeile:

[*] sudo    Provide limited super user privileges to specific users

Was bringt dieser Service? Oder ist das überhaupt ein Service?


Dies ist, was ich bei der Suche nach Google-> Sudo
adi

"Hier kommt sudo ins Spiel - es ermöglicht autorisierten Benutzern (normalerweise" Administratoren "; weitere Informationen finden Sie unter AddUsersHowto), bestimmte Programme als Root auszuführen, ohne das Root-Passwort zu kennen." - Genau das habe ich in meiner Frage gesagt.
s3v3n

3
Die Frage
bezieht sich auf

Antworten:


22

Kurze Antwort

So widerrufen Sie die zwischengespeicherten Authentifizierungsaktionen von Benutzern beim Neustart. Es ist kein Daemon, nur ein Skript, das beim Booten ausgeführt wird.


Umfassende Antwort

Durch Einsehen der Init-Datei /etc/init.d/sudo, die den Dienst startet, können Sie leicht erkennen, was er tut:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Im Grunde genommen werden nur einige Dateien /var/lib/sudobeim Systemstart berührt , um einen sehr alten Änderungszeitstempel zu erhalten. Infolgedessen werden die zwischengespeicherten, gewährten Authentifizierungsaktionen beim Start des Dienstes (was beim Booten geschieht) widerrufen.

/var/lib/sudoBitte noch ein paar Details zum Verzeichnis und den Zeitstempeln. Nun, aus der Mapage von sudo(8):

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

Perfekte Antwort :)
s3v3n

12

Die sudoServicedatei ist vorhanden, um sicherzustellen, dass die angeforderten Berechtigungen nach einem Neustart nicht erhalten bleiben. Grundsätzlich wird sichergestellt, dass normale Benutzer, die Root-Berechtigungen angefordert haben, nach dem Neustart wie normale Benutzer bleiben.


Eine ausführliche Erklärung zu sudo

Die nachfolgende Erklärung dient dazu, alle Informationen für alle zu erhalten, die diese Frage lesen, und anschließend zu erläutern, was die sudo-Datei im Dienstordner dort tut.

Wenn Sie Ubuntu oder eine andere Distribution installieren, die sudoden Unterschied zwischen root und einem Benutzer nutzt sudo, der "root like" -Privilegien erhält (Administrator- oder Superuser-Privilegien), gilt Folgendes:

Als Wurzel

  • Sie werden nicht für jeden oder alle Befehle, die Sie in einer Sitzung ausführen, nach einem Kennwort gefragt
  • Nicht alle Befehle, die Sie ausführen, werden standardmäßig protokolliert
  • Das System geht davon aus, dass Sie wissen, was Sie tun (Grund, warum es nicht jedes Mal nach einem Kennwort fragt, wenn Sie einen Befehl ausführen)
  • Es gibt keine zweite Chance oder Last-Minute-Option, wenn Sie einen Fehler machen

Als sudo

  • Sie werden für jeden oder alle Befehle, die Sie in einer Sitzung ausführen, nach einem Kennwort gefragt. Wenn Sie beispielsweise ein Terminal öffnen und einen Befehl ausführen, für den Administratorrechte erforderlich sind, wird das Kennwort für diese Sitzung einmal abgefragt, bis Sie das Terminal schließen oder sich abmelden. Dies hängt davon ab, welchen Befehl Sie wo verwenden. Möglicherweise werden Sie ein- oder mehrmals gefragt.
  • Alle Befehle, die Sie ausführen, werden protokolliert, da Sie tatsächlich die Erlaubnis zur Verwendung eines Superuser-privilegierten Befehls anfordern.
  • Das System geht davon aus, dass Sie vorübergehend um Erlaubnis gebeten werden, und das Administratorrecht wird vorübergehend verliehen (bis Sie sich abmelden, das Terminal schließen usw.).
  • Sie haben die Möglichkeit, in letzter Minute einen Fehler zu korrigieren. Dies geschieht in dem Moment, in dem Sie nach dem Passwort gefragt werden.

Warum wurde SUDO gegründet?

Die Erstellung von SUDO erfolgte, weil in der Vergangenheit die Verwendung von root mehr Probleme als Lösungen verursachte. Nutzer hatten sich alle Rechte, was bedeutete , dass , wenn sie einige Frühjahr Bereinigung tat und buchstäblich gelöscht das /usr, /libund /binOrdner (weil sie dachten , dass sie ihnen nicht erforderlich) .. erraten , was passieren würde. In der Vergangenheit gab es viele Probleme, weil Benutzer nicht wussten, welche Leistung sie bei der Verwendung von root hatten. Grundsätzlich hatten sie root, verstanden aber Linux, die Dateisystemhierarchie, welche Dateien wichtig waren usw. nicht. (So etwas wie einen Ferrari zu haben und nicht zu wissen, wie man ... auf einer Autobahn fährt!)

SUDO wird auch von GUI-Apps (wie Update Manager) verwendet, wenn sie temporäre Administratorrechte benötigen, um etwas zu tun. Sie benötigen es nur für eine bestimmte Anzahl von Befehlen (in der Regel 1) und kehren dann zur Berechtigung auf Benutzerebene zurück. Dies soll verhindern, dass der Benutzer ständig über Root-Rechte verfügt und einen Fehler macht, wenn er entscheidet, einen wichtigen Teil des Systems zu entfernen.

Darüber hinaus bietet es eine bessere Sicherheit, da der Root-Benutzer standardmäßig deaktiviert ist.

Wenn Sie einen Desktop-PC oder -Server besitzen, möchten Sie nicht, dass alle Benutzer als Root angemeldet sind und keine Administratorrechte besitzen. Sehr schlechte Idee , wenn Ihre kleine Schwester oder kleine Brüder sich zu fragen beginnt , was passieren würde , wenn /boottrifft DELSchlüssel. Hier wird sudodie Wahrscheinlichkeit verringert, dass etwas Schlimmes passiert.

Was bedeutet es , bestimmten Benutzern eingeschränkte Superuser-Berechtigungen zu gewähren?

sudo-Benutzer oder sudo-Benutzer haben tatsächlich eine Konfigurationsdatei, in der angegeben ist, wie eingeschränkt oder geöffnet der sudo-Befehl für einen bestimmten Benutzer ist. Die Datei /etc/sudoersenthält alle Informationen, um einen sudo-Benutzer einzuschränken oder ihm Zugriff zu gewähren. Standardmäßig ist der Zugriff auf alles enthalten, Sie können dies jedoch nach Belieben konfigurieren oder einschränken.

Informationen zur Verwendung des Dateityps sudoers man sudoersin einem Terminal. Das normale Format ist zum Beispiel:

USER HOST = BEFEHLE

Zum Beispiel cyrex server1 = /bin/lswird dem Benutzer cyrex auf dem Hostserver1 Zugriff auf die Ausführung des Befehls ls gewährt.

Zum Beispiel cyrex server1 (root) = /bin/lswird dem Benutzer cyrex auf dem Host server1 Zugriff gewährt, um den Befehl ls als root auszuführen.

cyrex ALL = /bin/lsErmöglicht beispielsweise dem Benutzer cyrex auf allen Hosts den Zugriff zum Ausführen des Befehls ls.

Zum Beispiel cyrex ALL = ALLwird der Benutzer cyrex auf allen Hosts Zugriff erhalten, um alle Befehle auszuführen.

Beispielsweise luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killallkann ich sudo für die Befehle killund killallals root ausführen, ohne nach einem Kennwort zu fragen.

Bildbeschreibung hier eingeben


2
Er weiß, was der Befehl sudo tut. Die Frage betrifft einen Systemdienst für sudo.
gertvdijk

1
@gertvdijk - Ich musste zuerst die Grundlagen erklären, da sich nicht nur er mit dieser Frage befassen wird. Der letzte Teil enthält den einzigen Grund, den ich für die sudo-Datei im Service-Ordner sehe.
Luis Alvarado

Vielen Dank an Luis Alvarado - The Wolver für diese umfangreichen Informationen und danke für die witzige modifizierte xkcd, die auf den !!Bang-Bang-Operator verweist , aber was macht der Service (NICHT der Befehl) sudo? Es wäre großartig, wenn Sie Ihre Antwort aktualisieren könnten, um die Frage wirklich zu beantworten.
s3v3n

1
Ein bisschen übertrieben, das alles am Ende nur für eine Phrase zu erklären, aber es beantwortet meine Frage;)
s3v3n

1
@ LuisAlvarado-TheWolverine Haha, dein Recht. Es war gut, dass Sie mir mit Ja
Lucio
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.