Звідки взявся термін "суперпользователь"? Це скорочення "наглядового користувача" чи це просто показник рівня потужності, який має такий користувач у системі?
Звідки взявся термін "суперпользователь"? Це скорочення "наглядового користувача" чи це просто показник рівня потужності, який має такий користувач у системі?
Відповіді:
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 році, тому воно не виходить набагато авторитетнішим за це.
Джерело Аарон Топонс: Значення "су"
OED (оплачується) дає таку етимологію:
супер- префікс + призначений для користувача н.
Найдавніший приклад, який вони перераховують, - від K. Thompson & DM Ritchie (1971): "Людина програміста Unix.":
Лише суперкористувач може викликати цю команду.