Da dove viene il termine "superutente"? È un accorciamento dell '"utente supervisore" o è solo un indicatore del livello di potere che un tale utente detiene in un sistema?
Da dove viene il termine "superutente"? È un accorciamento dell '"utente supervisore" o è solo un indicatore del livello di potere che un tale utente detiene in un sistema?
Risposte:
su permette di diventare il superutente, che ha tutti i tipi di poteri meravigliosi.
Dalla prima man page di 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
viene utilizzato sui sistemi Unix per cambiare utente e viene comunemente utilizzato per eseguire comandi come utente root.
E ... continua a leggere
Ho avuto un altro momento di scuotimento delle fondamenta con il significato di "su". Ho trovato un vecchio codice sorgente Unix, dove su.c era disponibile . Curioso, ho guardato la fonte. Cosa ho trovato
/* 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 è il primo commento in quel file C?
/* su -- become super-user */
su
è stato scritto per modificare solo l'utente root sul sistema. Non è stato progettato per passare a nessun altro utente che ha un account. "su" significa "superutente". Ho bisogno di sedermi per un secondo.Il codice sopra riportato proviene dalla quinta edizione di Unix di Dennis Ritchie e Ken Thompson. Se conosci la tua storia di Unix, non è stato fino alla sesta edizione che le cose hanno iniziato davvero a decollare per il mondo Unix. Quindi, è sicuro affermare che la maggior parte, se non tutto, del codice nella quinta edizione e precedenti sono stati scritti dagli stessi Dennis e Ken. La quinta edizione di Unix è stata pubblicata nel 1975, quindi non è molto più autorevole di così.
Fonte Aaron Toponce: il significato di 'su'
OED (paywalled) fornisce la seguente etimologia:
super prefisso + utente n.
Il primo esempio che elencano è di K. Thompson e DM Ritchie (1971): "Unix Programmer's Man.":
Solo il superutente può invocare questo comando.