¿Dónde se originó el término "superusuario"?

55

¿Dónde se originó el término "superusuario"? ¿Es un acortamiento del "usuario supervisor", o es solo un indicador del nivel de poder que dicho usuario tiene en un sistema?

VortixDev
fuente
Tengo curiosidad por qué superuser.com se llama superusuario. ¿Es la misma conexión? ¿Viene de Unix y el superusuario de ese sistema operativo?
Corporate Geek

Respuestas:

54

¿Dónde se originó el término "superusuario"?

su le permite a uno convertirse en el superusuario, que tiene todo tipo de poderes maravillosos.

Desde la primera página de manual de Unix su man:

        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

Fuente minnie.tuhs.org/UnixTree/V5/usr/source/s2/su.c.html

su se usa en sistemas Unix para cambiar de usuario, y se usa comúnmente para ejecutar comandos como usuario root.

Y ... sigue leyendo

Tuve otro momento de sacudida de la base con el significado de "su". Encontré un código fuente antiguo de Unix, donde su.c estaba disponible . Curioso, miré la fuente. ¿Qué encontré?

/* 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");
}

¿Cuál es el primer comentario en ese archivo C?

/* su -- become super-user */

sufue escrito para cambiar solo al usuario root en el sistema. No fue diseñado para cambiar a ningún otro usuario que tenga una cuenta. "su" significa "superusuario". Necesito sentarme por un segundo.

El código anterior proviene de la quinta edición de Unix de Dennis Ritchie y Ken Thompson. Si conoces tu historia de Unix, no fue hasta la sexta edición que las cosas realmente comenzaron a despegar para el mundo de Unix. Por lo tanto, es seguro decir que la mayoría, si no todo, del código en la quinta edición y anteriores fueron escritos por Dennis y Ken. Quinta edición de Unix lanzada en 1975, por lo que no tiene mucha más autoridad que eso.

Fuente Aaron Toponce: El significado de 'su'


Otras lecturas

DavidPostill
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Journeyman Geek
35

OED (paywalled) proporciona la siguiente etimología:

super- prefijo + usuario n.

El primer ejemplo que enumeran es de K. Thompson y DM Ritchie (1971): "Unix Programmer's Man":

Solo el superusuario puede invocar este comando.

Jukka Suomela
fuente