¿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?


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


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.