Звідки взявся термін "суперпользователь"?


55

Звідки взявся термін "суперпользователь"? Це скорочення "наглядового користувача" чи це просто показник рівня потужності, який має такий користувач у системі?


Мені цікаво, чому superuser.com називають superuser. Це той самий зв’язок? Він походить від Unix і суперкористувача з цієї операційної системи?
Корпоративний Geek

Відповіді:


55

Звідки взявся термін "суперпользователь"?

su дозволяє стати суперкористувачем, який володіє всілякими чудовими силами.

З першої сторінки 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

Джерело 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було написано лише для зміни кореневого користувача в системі. Він не розроблявся для переходу на будь-якого іншого користувача, який має обліковий запис. "su" означало "суперкористувач". Мені потрібно сісти на секунду.

Код, наведений вище, походить з п'ятого видання Unix Деніса Річі та Кена Томпсона. Якщо ви знаєте свою історію Unix, до шостого видання насправді почали виходити речі для світу Unix. Отже, можна з упевненістю сказати, що більшість, якщо не всі, коду у п’ятому виданні та попередньому тексті написали самі Денніс та Кен. П'яте видання Unix було випущено в 1975 році, тому воно не виходить набагато авторитетнішим за це.

Джерело Аарон Топонс: Значення "су"


Подальше читання


Коментарі не для розширеного обговорення; ця розмова перенесена в чат .
Подорожник Geek

35

OED (оплачується) дає таку етимологію:

супер- префікс + призначений для користувача н.

Найдавніший приклад, який вони перераховують, - від K. Thompson & DM Ritchie (1971): "Людина програміста Unix.":

Лише суперкористувач може викликати цю команду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.