¿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?
¿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?
Respuestas:
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 */
su
fue 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'
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.