Woher stammt der Begriff "Superuser"? Handelt es sich um eine Abkürzung für "Aufsichtsbenutzer", oder handelt es sich nur um einen Indikator für das Maß an Macht, das ein solcher Benutzer in einem System innehat?
Woher stammt der Begriff "Superuser"? Handelt es sich um eine Abkürzung für "Aufsichtsbenutzer", oder handelt es sich nur um einen Indikator für das Maß an Macht, das ein solcher Benutzer in einem System innehat?
Antworten:
su ermöglicht es einem, der Superuser zu werden, der alle möglichen wunderbaren Kräfte besitzt.
Aus der Manpage von First Edition Unix su:
11/3/71 SU (I)
NAME su -- become privileged user
SYNOPSIS su password
DESCRIPTION su allows one to become the super--user, who has all sorts
of marvelous powers. In order for su to do its magic, the
user must pass as an argument a password. If the password
is correct, su will execute the shell with the UID set to
that of the super--user. To restore normal UID privileges,
type an end--of--file to the super--user shell
FILES
SEE ALSO shell
DIAGNOSTICS "Sorry" if password is wrong
BUGS
OWNER dmr, ken
Quelle minnie.tuhs.org/UnixTree/V5/usr/source/s2/su.c.html
su
wird auf Unix-Systemen zum Ändern des Benutzers verwendet und wird häufig zum Ausführen von Befehlen als Rootbenutzer verwendet.
Und ... lesen Sie weiter
Ich hatte einen weiteren Grund, der mich mit der Bedeutung von "su" erschütterte. Ich habe alten Unix-Quellcode gefunden, in dem su.c verfügbar war . Neugierig schaute ich auf die Quelle. Was habe ich gefunden?
/* su -- become super-user */ char password[100]; char pwbuf[100]; int ttybuf[3]; main() { register char *p, *q; extern fin; if(getpw(0, pwbuf)) goto badpw; (&fin)[1] = 0; p = pwbuf; while(*p != ':') if(*p++ == '\0') goto badpw; if(*++p == ':') goto ok; gtty(0, ttybuf); ttybuf[2] =& ~010; stty(0, ttybuf); printf("password: "); q = password; while((*q = getchar()) != '\n') if(*q++ == '\0') return; *q = '\0'; ttybuf[2] =| 010; stty(0, ttybuf); printf("\n"); q = crypt(password); while(*q++ == *p++); if(*--q == '\0' && *--p == ':') goto ok; goto error; badpw: printf("bad password file\n"); ok: setuid(0); execl("/bin/sh", "-", 0); printf("cannot execute shell\n"); error: printf("sorry\n"); }
Was ist der erste Kommentar in dieser C-Datei?
/* su -- become super-user */
su
wurde geschrieben, um nur den Root-Benutzer auf dem System zu ändern. Es wurde nicht entwickelt, um zu einem anderen Benutzer zu wechseln, der ein Konto besitzt. "su" bedeutete "Superuser". Ich muss mich für eine Sekunde hinsetzen.Der obige Code stammt aus der fünften Ausgabe von Unix von Dennis Ritchie und Ken Thompson. Wenn Sie Ihre Unix-Geschichte kennen, begann die Unix-Welt erst in der sechsten Ausgabe richtig zu beginnen. Man kann also mit Sicherheit sagen, dass die meisten, wenn nicht alle Codes in der fünften und vorherigen Ausgabe von Dennis und Ken selbst geschrieben wurden. Die fünfte Ausgabe von Unix wurde 1975 veröffentlicht, daher wird es nicht viel aussagekräftiger.
Quelle Aaron Toponce: Die Bedeutung von 'su'
OED (paywalled) gibt die folgende Etymologie an:
super- Präfix + user n.
Das früheste Beispiel, das sie auflisten, stammt von K. Thompson & DM Ritchie (1971): "Unix Programmer's Man":
Nur der Superuser darf diesen Befehl aufrufen.