it-swarm.com.de

Woher stammt der Begriff "Superuser"?

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?

55
VortixDev

Woher stammt der Begriff "Superuser"?

su ermöglicht es einem, der Superuser zu werden, der alle möglichen wunderbaren Kräfte besitzt.

Aus der First Edition Unix su-Manpage:

        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

Source 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, wo 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'


Weitere Lektüre

55
DavidPostill

OED (paywalled) gibt die folgende Etymologie an:

super- Präfix + Benutzer n.

Das früheste Beispiel, das sie auflisten, stammt von K. Thompson & D. M. Ritchie (1971): "Unix Programmer's Man".

Nur der Superuser darf diesen Befehl aufrufen.

36
Jukka Suomela