Коли були створені ці користувачі?
У тих випадках, про які ви згадали, вони були створені при встановленні системи. Ці облікові записи користувачів є звичайними, деякі датуються десятиліттями. Вони також стандартизовані. Стандартна база Linux ділить їх на:
- потрібно стандартні призначені для користувача облікові записи,
root
, bin
, і daemon
; і
- необов'язково стандартні призначені для користувача облікові записи
adm
, lp
, sync
, shutdown
, halt
, mail
, news
, uucp
, operator
, man
, іnobody
Інші облікові записи користувачів, які згадуються тут - pulse
, avahi
, colord
, і Debian-exim
(вибрати один з файлу паролів py4on в) - привести нас до наступного питання.
Як вони пов'язані з новими програмами, які встановлюються?
Нестандартні облікові записи користувачів створюються та знищуються за допомогою "скриптів технічного обслуговування" для різних пакетів, коли ці пакунки встановлюються та очищаються. Обліковий запис користувача буде створений за допомогою так званого postinst
сценарію сервісного пакета , який запускає, getent
щоб перевірити, чи вже існує обліковий запис користувача, та useradd
чи ні. Теоретично це було б видалено за допомогою так званого postrm
сценарію сервісного пакета , який працює userdel
.
На практиці облікові записи користувачів для пакетів не видаляються. Вікі Fedora (qv) пояснює, що це загрожує труднощами. Дивіться помилку Debian # 646175 для прикладу цього обґрунтування в дії, де вирішено просто не видаляти rabbitmq
обліковий запис користувача, коли пакет очищений, щоб вирішити проблему з dæmon, який продовжує працювати під егідою цього облікового запису.
Як розпочалися ці програми з різними UID?
У Unix та Linux процес, що працює під егідою суперпользователя, може змінити свій обліковий запис користувача на щось інше і продовжувати запускати ту саму програму, однак зворотне заборонено. (Потрібно використовувати механізм set-UID.)
Система управління dæmon працює як суперпользователь. Дані його конфігурації вказують, що конкретні dæmons працюють під егідами конкретних облікових записів користувачів:
- У System 5
rc
сценарій /etc/init.d
використовує допоміжний інструмент, такий як start-stop-daemon
та його --chuid
параметр.
- З менеджером служби Daemontools сім'ї,
run
сценарій викликає setuidgid
, s6-setuidgid
, chpst
або runuid
з ім'ям облікового запису користувача. Приклади цього є на /unix//a/179798/5132, які встановлюють nagios
обліковий запис користувача.
- З
setuid
початком роботи у файлі завдань є строфа, яка вказує обліковий запис користувача. Це не особливо дрібнозернисте, і іноді хочеться того, що описано на /superuser//a/723333/38062 .
- У системі systemd
User=
у файлі сервісного блоку є налаштування, яке вказує обліковий запис користувача.
Коли система управління dæmon породжує процес, який є dæmon, ці механізми скидають привілеї суперпользователя, щоб процес dæmon продовжував працювати під егідою непривілейованого облікового запису користувача.
Існує досить тривале пояснення того, чому добре керування dæmon робиться саме так. Але ви не запитували, чому; тільки коли, як і звідки. Therefore Отже, дуже короткий принцип:
Операційні системи Unix та Linux ізолюють процеси, що працюють під егідами різних облікових записів користувачів один від одного. Історично, якби хтось зміг перейняти джмон, який працював як суперпользователь, можна було зробити все, що подобалося. Dæmon, який працює під егідою непривілейованого облікового запису, з іншого боку, може отримати доступ лише до файлів, каталогів, пристроїв та процесів, які може мати цей непривілейований обліковий запис. Система взаємно недовірливих програм dæmon, які працюють під егідами різних облікових записів користувачів і не мають доступу до (керуються) файлами / каталогами / процесами / пристроями один одного (внутрішні, довірені), тому зламати набагато важче.
Подальше читання