55 votes

D'où vient le terme "superutilisateur" ?

D'où vient le terme "superutilisateur" ? S'agit-il d'une abréviation de "supervisory user" ou simplement d'un indicateur du niveau de pouvoir d'un tel utilisateur dans un système ?

54voto

DavidPostill Points 140654

D'où vient le terme "superutilisateur" ?

su permet de devenir le super-- de pouvoirs merveilleux.

De la Première édition Unix page de manuel 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 communément utilisé pour exécuter des commandes en tant qu'utilisateur root.

Et ... lire la suite

J'ai eu un autre moment d'ébranlement des fondations avec la signification de "su". I trouvé un vieux code source Unix, où 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 changer que l'utilisateur root du système. Il n'a pas été conçu pour passer à n'importe quel autre utilisateur ayant un compte. "su" signifie "super-utilisateur". J'ai besoin de m'asseoir une seconde.

Le code ci-dessus provient de la cinquième édition et Ken Thompson. Si vous connaissez l'histoire d'Unix, ce n'est pas vraiment jusqu'à la sixième édition que les choses ont vraiment commencé à décoller pour le monde Unix. Donc, on peut dire sans se tromper que la plupart, si ce n'est la totalité, du code dans la cinquième édition et les précédentes ont été écrites par Dennis et Ken eux-mêmes. La 5ème édition d'Unix est sortie en 1975, donc il n'y a pas beaucoup plus d'autorité que ça.

Source : Aaron Toponce : le sens du mot "su".


Autres lectures

35voto

Mirko Points 313

OED (paywalled) donne l'étymologie suivante :

super- préfixe + utilisateur n.

L'exemple le plus ancien qu'ils citent est celui de K. Thompson & D. M. Ritchie (1971) : "Unix Programmer's Man" :

Seul le super-utilisateur peut invoquer cette commande.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X