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?
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?
Respostas:
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 */
su
foi 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'
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.