web-dev-qa-db-fra.com

D'où vient le terme "superutilisateur"?

D'où vient le terme "superutilisateur"? S'agit-il d'un raccourcissement du terme "utilisateur superviseur" ou est-il simplement un indicateur du niveau de puissance qu'un tel utilisateur détient dans un système?

55
VortixDev

D'où vient le terme "superutilisateur"?

su permet de devenir le super-utilisateur, qui dispose de toutes sortes de pouvoirs merveilleux.

De la page de manuel 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

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

su est utilisé sur les systèmes Unix pour changer d'utilisateur, et est généralement utilisé pour exécuter des commandes en tant qu'utilisateur root.

Et ... lisez la suite

J'ai eu un autre moment de tremblement de base avec la signification de "su". J'ai trouvé un vieux code source Unix, où le code su.c était disponible . Curieux, j'ai regardé la source. Qu'est-ce que j'ai trouvé?

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

Quel est le premier commentaire dans ce fichier C?

/* su -- become super-user */

su a été écrit pour ne modifier que l'utilisateur root du système. Il n'a pas été conçu pour basculer vers un autre utilisateur disposant d'un compte. "su" signifiait "super-utilisateur". Je dois m'asseoir une seconde.

Le code ci-dessus provient de la cinquième édition d'Unix par Dennis Ritchie et Ken Thompson. Si vous connaissez votre histoire Unix, ce n’est vraiment que lors de la sixième édition que les choses ont vraiment commencé à décoller pour le monde Unix. Il est donc prudent de dire que la plupart, sinon la totalité, du code de la cinquième édition et des versions antérieures ont été écrites par Dennis et Ken eux-mêmes. La cinquième édition d'Unix est sortie en 1975, donc ça ne fait pas plus autorité que ça.

Source Aaron Toponce: La signification de 'su'


Lectures complémentaires

55
DavidPostill

OED (paywalled) donne l'étymologie suivante:

super- préfixe + utilisateur n.

Le premier exemple cité est celui de K. Thompson & D. M. Ritchie (1971): "Unix Programmer's Man.":

Seul le super-utilisateur peut appeler cette commande.

36
Jukka Suomela