Warum heißt es sudo?

30

Warum führen wir sudoals Administrator einen Terminalbefehl aus? Warum ist es nicht adminoder etwas anderes? Gibt es einen Grund dafür sudo?

Mohammad
quelle
19
Lesen Sie sudo lsals „Super - User tun ls“ (und nicht, es ist nicht dumm, Mnemotechnik für das Erinnern Befehle wichtig sind) (und nein, wahrscheinlich bedeutet es " s Hexe u ser und tun , da suMittel Benutzer wechseln Aber ich den ehemaligen schönsten finden. -))
Rmano
1
Superuser viel besser als Admin :) Vielen Dank für die Antwort.
Mohammad
2
Es ist das Sudo Voodoo, das Sie tun. :)
Shadur
14
Lustige Tatsache: auf Italienisch sudobedeutet (ich) schwitzen . Ich interpretiere es gerne sudo Xals schwitzen, weil ich Angst habe, den falschen Befehl zu geben und alle meine Daten zu löschen . Dies ist hilfreich, wenn Sie bedenken, dass Sie sudoBefehle nur dann voranstellen sollten, wenn 1) dies erforderlich ist. 2) Sie wissen, was Sie tun. 3) Sie haben die Befehlszeile sorgfältig geschrieben und gelesen, um Tippfehler zu vermeiden (insbesondere bei schlechten Leerzeichen, die schwer zu vermeiden sind fangen und kann zu wirklich schrecklichen unerwarteten Ergebnissen führen).
Bakuriu
2
@Rmano su bedeutete ursprünglich " Superuser ", "Ersatzbenutzer" kam später .
Gilles 'SO- hör auf böse zu sein'

Antworten:

32

Aus Wikipedia :

sudo ist ein Programm für Unix-ähnliche Computerbetriebssysteme, mit dem Benutzer Programme mit den Sicherheitsberechtigungen eines anderen Benutzers (normalerweise Superuser oder Root) ausführen können. Sein Name ist eine Verkettung von "su" (Ersatzbenutzer) und "do" oder "take action".

Im Gegensatz zum Befehl su geben Benutzer in der Regel ihr eigenes Kennwort anstelle des Root-Kennworts an sudo weiter. Nach der Authentifizierung und wenn die Konfigurationsdatei / usr / local / etc / sudoers (manchmal unter / etc / sudoers zu finden) den Benutzerzugriff zulässt, ruft das System den angeforderten Befehl auf. Die sudoers-Konfigurationsdatei ermöglicht eine enorme Menge an Konfigurierbarkeit, einschließlich, aber nicht beschränkt auf: Aktivieren von Root-Befehlen nur vom aufrufenden Terminal aus; Für bestimmte Befehle ist kein Kennwort erforderlich. Erfordernis eines Passworts pro Benutzer oder Gruppe; Jedes Mal muss ein Kennwort erneut eingegeben werden, oder es muss für eine bestimmte Befehlszeile überhaupt kein Kennwort eingegeben werden. Sie kann auch so konfiguriert werden, dass Argumente oder mehrere Befehle übergeben werden können, und unterstützt sogar Befehle mit regulären Ausdrücken.

Es ist ein vorübergehender einmaliger Befehl mit Superuser- (Administrator-) Berechtigungen ohne direkte Root-Anmeldung.

Virusboy
quelle
11
Der Wiki-Teil ist korrekt. Der Kommentar zu "Mac is Su" ist nicht korrekt. Macs haben beides sudo, sugenau wie BSD und Linux.
Daviewales
@ Virusboy Hallo, es tut mir leid, dies in diesem Thema zu versuchen. Aber ich muss wissen Ist es einfach, Ubuntu 14.04 mit Toshiba M840 i3-3110M zu verwenden. Vielen Dank.
Bonn
Es ist einfach für jeden PC
Virusboy
21

xkcd: Sandwich

Vor sudo waren die meisten Administratoren als Root-Benutzer angemeldet, da Sie auf einfache Weise Ihr System konfigurieren können, da Sie alle Rechte besitzen. Ein kleiner Fehler oder eine falsche Internetverbindung und Ihr gesamtes System können jedoch beeinträchtigt oder sogar kompromittiert werden.

Aufgrund dieses Problems sudo angezeigt . Ziel war es, Administratorrechte nur für kurze Zeit und nur bei Bedarf zu nutzen. Außerdem würde dies verhindern, dass sich der Benutzer bei einem anderen Konto anmeldet. Dies würde natürlich die Systemsicherheit erhöhen .

Unter Ubuntu erhöhen sie die Sicherheit Ihres Systems. Daher beschlossen sie, den Sudo-Weg zu beschreiten. Der Root-Benutzer ist deaktiviert. Es besteht keine Notwendigkeit und insbesondere keine Gefahr, dass sich ein Benutzer über die X-Schnittstelle mit dem Root-Benutzer anmeldet. Außerdem haben sie es autorisierten Benutzern ermöglicht, jeden Befehl mit sudo zu starten. Das Coole ist, dass Power-User auf das Root-Konto zugreifen können.

Nachteile von sudo :

  • Welche Befehle du über sudo zulässt
  • Sie müssen sudovor jedem Befehl schreiben , der Administratorrechte erfordert
  • Von Zeit zu Zeit müssen Sie das Kennwort erneut eingeben .

Was sudobedeutet Sein Name ist eine Verkettung von "su" (Ersatzbenutzer) und "do".

Warum sudonicht admin? Ich denke sudobedeutet adminfür eine bestimmte Zeit und nur dann, wenn Sie es brauchen.

Leute, die aus der Windows-Umgebung kommen, sollten verstehen, warum es nicht so ist admin :)

Referenzen: Site
Picture: xkcd

nux
quelle
Warum heißt es nicht Rodo?
James Ryan
3
Ihr "vor Sudo" Absatz ist falsch. Es gibt keinen Unterschied zwischen suund sudoin dieser Hinsicht besteht der einzige Unterschied zwischen den beiden darin, welche Berechtigungsnachweise verwendet werden. Verwenden ist sicherer sudoals sunicht (in der Tat ist es etwas weniger sicher); Der Hauptvorteil von sudo (und der Grund, warum Ubuntu es gewählt hat) ist die Einfachheit für den Benutzer (nur ein Kennwort muss gespeichert werden).
Gilles 'SO- hör auf böse zu sein'
11

Von Linux.com, einem Produkt der Linux Foundation:

Sudo steht entweder für " Ersatzbenutzer " oder " Superbenutzer " (je nachdem, wie Sie es betrachten möchten). Was sudo macht, ist für viele Linux-Distributionen unglaublich wichtig und entscheidend. Tatsächlich erlaubt sudo einem Benutzer, ein Programm als ein anderer Benutzer (meistens der Root-Benutzer) auszuführen.

[Betonung meiner.] Quelle

Cerran
quelle
3

Superuser tun

Es gibt einen Befehl, su, um der Superuser zu werden, könnte man sagen

$ su
# apt-get install somehorror
# exit
$

Mit sudo können Sie das auf einen Schlag tun, und Sie müssen nicht daran denken, auf Ihre magischen Kräfte zu verzichten.

$ sudo apt-get install somehorror
John Lawrence Aspden
quelle
2
su("Ersatzbenutzer") ermöglicht es Ihnen, ein beliebiger Benutzer zu werden: Sie können einen Benutzernamen als Argument angeben.
David Richerby
1
Eigentlich sind die beiden nicht genau gleich, aber in den meisten Fällen ähnlich. Mit sudo können Sie jedoch hauptsächlich ein Programm mit Superuser-Rechten ausführen, wobei Ihre normale Umgebung erhalten bleibt. su macht Sie tatsächlich zu Super-Usern mit einer Super-User-Umgebung.
Marty Fried
3

Wenn man bedenkt, warum es nicht "admin" ist - oder eher indirekt, warum su nicht "switchUser" oder so -, dann sind traditionelle Unix-Befehle aus historischen Gründen eher minimale Abkürzungen, die mit den Ursprüngen von Unix zu tun haben.

Aus dem grundlegendsten Grund müssen wir auf den gleichen Grund zurückgehen, aus dem er in erster Linie Unix heißt. Ein Großteil von Unix wurde von einem der frühen Multiuser-Multitasking-Betriebssysteme, MIT's Multics, inspiriert. (Unix erhält seinen Namen entweder als "Singular von Multics" oder als "kastrierte Multics", je nachdem, wen Sie fragen und welche Stimmung sie gerade haben.)

Unter den anderen Innovationen von Multics wurde das Konzept eingeführt, den tatsächlichen Dateispeicherort von den Verzeichnisinformationen zu trennen, sodass eine einzelne Datei mehrere Namen haben kann. ("Links", in Unix-Begriffen.) Multics nutzte dies (zu) voll aus; Die meisten Multics-Befehle haben sowohl ALongNameThatIsImpossibleToType als auch ASNTOECR (einen Kurznamen, an den sich nur Experten erinnern können). Die Erfahrung hat gezeigt, dass die langen Namen wirklich nicht sehr benutzerfreundlich waren, da zu dieser Zeit alle Benutzer realistisch gesehen "Experten" waren oder wurden und fast niemand die langen Namen benutzte. Als Unix einen Teil des Designs von Multics übernahm, bestand eine ihrer Vereinfachungen darin, die nicht verwendeten langen Namen zu verwerfen und nur die fachkundigen Kurznamen beizubehalten.

Dies passt auch gut zu der Unix-Philosophie, das Betriebssystem und seinen Kernbefehl auf das Wesentliche zu reduzieren, sodass es auf kleineren Systemen effizient ausgeführt werden kann. Damals haben Programmierer noch jedes Byte und jeden Zyklus erhalten, die möglich waren. Prozessoren waren enorm langsamer, Endgeschwindigkeiten waren ebenfalls enorm langsamer und Speicher war enorm teurer (und langsamer und hatte winzige Caches, wenn überhaupt). Wenn Sie die Systembefehle auf ein Minimum beschränken, haben Sie möglicherweise nicht viel (wenn überhaupt) reale Ressourcen gespart, aber es hat sich für die damalige Denkweise "richtig" angefühlt.

Wenn Sie wirklich auf benutzerfreundlichen Befehlsnamen bestehen, lautet die Unix-Antwort: "Sie wissen, wie man ein Shell-Skript schreibt; implementieren Sie es selbst. Wenn Sie nicht wissen, wie man ein Shell-Skript schreibt, müssen Sie lernen, wie man es macht." Wenn Sie nicht gerne lernen und / oder programmieren, werden Sie mit Unix nicht zufrieden sein und sollten etwas anderes verwenden. "

Keshlam
quelle
3

Ob " Superuser " das ist, von dem es su ursprünglich abgeleitet wurde, ist ungenau, da der von Ihnen angegebene Benutzername kein Superuser sein muss. Das Gleiche gilt für die Ausführung von Befehlen durch einen anderen Benutzer sudo -u.

" Benutzer ersetzen " ist genauer, klingt aber klobig. Es bringt mich dazu, an einen Ersatzlehrer zu denken.

Daher stelle ich mir sueinfach "Benutzer wechseln" und sudodamit "Benutzer wechseln & tun" vor.

otus
quelle
1
Immer, wenn es ein Super-User ist, aber ein Ersatz-User klingt mehr richtig
BeyondProgrammer
1

Von der Sudo-Website :

"Was ist Sudo?

Mit Sudo (su "do") kann ein Systemadministrator die Berechtigung delegieren, bestimmten Benutzern (oder Benutzergruppen) die Möglichkeit zu geben, einige (oder alle) Befehle als Root-Benutzer oder als anderer Benutzer auszuführen, während ein Prüfpfad für die Befehle und ihre Argumente bereitgestellt wird . "

"Sudo wurde erstmals 1980 von Bob Coggeshall und Cliff Spencer am Department of Computer Science in SUNY / Buffalo konzipiert und implementiert. Es lief auf einer VAX-11/750 mit 4.1BSD. Eine aktualisierte Version, die Phil Betchel, Cliff Spencer, gutgeschrieben wurde Gretchen Phillips, John LoVerso und Don Gworek wurden im Dezember 1985 in der Usenet-Newsgroup net.sources eingestellt. "

Das heißt, obwohl ich nicht glaube, dass es Beweise gibt, habe ich immer fest daran geglaubt, dass der Name eine Art geekiger Programmierwitz war. Sie haben den Befehl "su" (Superuser) "do", sind aber eigentlich kein Superuser - verwandeln Sie das "doo" in ein "doh" und "sudo" sieht / klingt ähnlich wie "pseudo" (fake) , Schein).

Anaksunaman
quelle
-2

Die meisten Leute haben die Antwort gegeben, dass es ein Mashup von "Super User Do" ist. Ich mag das, aber es mag korrekter sein zu sagen, dass es ein Mashup von "Ersatzbenutzer tun" ist, weil Sie wählen können, welchen Benutzer Sie wie mit dem Flag -u "tun".

Ich betrachte es auch als ein Spiel mit dem Wort psuedonym, weil Sie sich als jemand anderes ausgeben können, entweder als root oder als jeder andere Benutzer, der das Flag -u verwendet.

Drei Tassen
quelle
3
Nun, die Frage war, warum es so heißt, wie es ist, nicht für Backronyms und / oder Mnemonics, also ... [Zitat benötigt]
derobert
Auch der Standard- rootZielbenutzer muss nicht sein (obwohl es sinnvoll ist, dass er oder mindestens einer mit der UID 0 ist und dies im Allgemeinen der Fall ist), siehe runas_defaultin sudoers.
Stéphane Chazelas
@derobert +1 für die Verwendung von "Backronyms" und um die Website von falschen Antworten frei zu halten.
Drei-Tassen
@sch danke, das wusste ich nicht.
Drei-Tassen