Onde o termo "superusuário" se originou?

55

De onde o termo "superusuário" se originou? É uma redução do "usuário supervisor" ou é apenas um indicador do nível de poder que um usuário possui em um sistema?

VortixDev
fonte
Estou curioso para saber por que superuser.com é nomeado superusuário. É a mesma conexão? Ele vem do Unix e o superusuário desse sistema operacional?
Geek Corporativo

Respostas:

54

De onde o termo "superusuário" se originou?

su permite que alguém se torne o superusuário, que tem todo tipo de poderes maravilhosos.

Na página do manual 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

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

su é usado nos sistemas Unix para alterar o usuário e geralmente é usado para executar comandos como o usuário root.

E ... continue a ler

Eu tive outro momento tremendo de fundação com o significado de "su". Encontrei algum código fonte antigo do Unix, onde o su.c estava disponível . Curioso, eu olhei para a fonte. O que eu achei?

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

Qual é o primeiro comentário nesse arquivo C?

/* su -- become super-user */

sufoi gravado para mudar apenas para o usuário root no sistema. Não foi projetado para mudar para outro usuário que tenha uma conta. "su" significava "superusuário". Eu preciso sentar por um segundo.

O código acima vem da quinta edição do Unix de Dennis Ritchie e Ken Thompson. Se você conhece sua história no Unix, realmente não foi até a sexta edição que as coisas realmente começaram a decolar para o mundo Unix. Portanto, é seguro dizer que a maioria, se não todos, do código da quinta edição e anterior foram escritos pelos próprios Dennis e Ken. Quinta edição do Unix, lançada em 1975, por isso não tem muito mais autoridade do que isso.

Fonte Aaron Toponce: O significado de 'su'


Leitura adicional

DavidPostill
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Journeyman Geek
35

OED (paywalled) fornece a seguinte etimologia:

super prefixo + usuário n.

O exemplo mais antigo que eles listam é de K. Thompson e DM Ritchie (1971): "Unix Programmer's Man".

Somente o superusuário pode chamar este comando.

Jukka Suomela
fonte