Откуда возник термин «суперпользователь»?

55

Откуда возник термин «суперпользователь»? Является ли это сокращением «контролирующего пользователя» или это просто индикатор уровня мощности, который один такой пользователь имеет в системе?

VortixDev
источник
Мне любопытно, почему superuser.com называют superuser. Это то же самое соединение? Это происходит от Unix и суперпользователя из этой операционной системы?
Корпоративный Компьютерщик

Ответы:

54

Откуда возник термин «суперпользователь»?

su позволяет стать суперпользователем, обладающим всевозможными чудесными способностями.

Со страницы руководства 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

Источник minnie.tuhs.org/UnixTree/V5/usr/source/s2/su.c.html

su используется в системах Unix для смены пользователя и обычно используется для запуска команд от имени пользователя root.

И ... читать дальше

У меня был еще один потрясающий момент со значением «су». Я нашел старый исходный код Unix, где su.c был доступен . Любопытно, я посмотрел на источник. Что я нашел?

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

Какой первый комментарий в этом C-файле?

/* su -- become super-user */

suбыло написано, чтобы изменить только для пользователя root в системе. Он не был предназначен для переключения на любого другого пользователя, который имеет учетную запись. «su» означало «супер-пользователь». Мне нужно сесть на секунду.

Код выше взят из пятого издания Unix Денниса Ритчи и Кена Томпсона. Если вы знаете свою историю Unix, то до шестого издания дела в мире Unix не начались. Таким образом, можно с уверенностью сказать, что большинство, если не все, кода в пятом издании и ранее были написаны самими Деннисом и Кеном. Пятое издание Unix выпущено в 1975 году, поэтому оно не становится намного более авторитетным, чем это.

Источник Аарон Топонсе: Значение слова «Су»


Дальнейшее чтение

ДэвидПостилл
источник
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
подмастерье Компьютерщик
35

OED (paywalled) дает следующую этимологию:

супер- префикс + пользователь n.

Самый ранний пример, который они перечисляют, принадлежит К. Томпсону и Д. М. Ритчи (1971): «Человек программиста Unix».

Только суперпользователь может вызывать эту команду.

Юкка Суомела
источник