Kiedy utworzono tych użytkowników?
W przypadkach, o których wspomniałeś, zostały one utworzone podczas instalacji systemu. Te konta użytkowników są konwencjonalne, niektóre sięgają dziesięcioleci. Są również znormalizowane. Linux Standard Base dzieli je na:
- wymagane rachunków standard obsługi,
root
, bin
, i daemon
; i
- opcjonalne standardowe konta użytkowników
adm
, lp
, sync
, shutdown
, halt
, mail
, news
, uucp
, operator
, man
, inobody
Inne konta użytkownika, które są wymienione tutaj - pulse
, avahi
, colord
oraz Debian-exim
(aby wybrać jeden z pliku haseł py4on'S) - doprowadzi nas do następnego pytania.
W jaki sposób są one związane z instalowaniem nowych programów?
Niestandardowe konta użytkowników są tworzone i niszczone przez „skrypty opiekuna” dla różnych pakietów, ponieważ pakiety te są instalowane i usuwane. Konto użytkownika zostanie utworzone za pomocą tak zwanego postinst
skryptu opiekuna pakietu , który uruchamia się, getent
aby sprawdzić, czy konto użytkownika już istnieje, a useradd
jeśli nie. Teoretycznie zostałby usunięty przez uruchomiony tak zwany postrm
skrypt opiekuna pakietu userdel
.
W praktyce konta użytkowników dla pakietów nie są usuwane. Wiki Fedory (qv) wyjaśnia, że byłoby to trudne. Zobacz błąd Debiana # 646175, aby zobaczyć przykład takiego uzasadnienia w działaniu, w którym postanowiono po prostu nie usuwać rabbitmq
konta użytkownika po wyczyszczeniu pakietu, aby rozwiązać problem z demonem, który nadal działa pod egidą tego konta.
Jak te programy zostały uruchomione z różnymi identyfikatorami UID?
W systemach Unix i Linux proces działający pod egidą administratora może zmienić konto użytkownika na coś innego i kontynuować działanie tego samego programu, ale odwrotność nie jest dozwolona. (Należy użyć mechanizmu set-UID.)
System zarządzania dæmon działa jako administrator. Jego dane konfiguracyjne określają, że poszczególne demony działają pod egidą poszczególnych kont użytkowników:
- W systemie 5
rc
skrypt /etc/init.d
używa narzędzia pomocniczego, takiego jak start-stop-daemon
i jego --chuid
opcji.
- Z menedżerem usług daemontools rodziny,
run
rozmowy skrypt setuidgid
, s6-setuidgid
, chpst
, lub runuid
z nazwą konta użytkownika. Istnieją tego przykłady w /unix//a/179798/5132, które ustawiają nagios
konto użytkownika.
- Przy wstępnym uruchomieniu
setuid
w pliku zadania znajduje się zwrotka określająca konto użytkownika. Nie jest to szczególnie drobnoziarniste i czasami chce się tego, co opisano na /superuser//a/723333/38062 .
- W systemd znajduje się
User=
ustawienie w pliku jednostki serwisowej, które określa konto użytkownika.
Gdy system zarządzania demonem odradza proces, który jest demonem, mechanizmy te usuwają uprawnienia administratora, aby proces demon kontynuował działanie pod egidą nieuprzywilejowanego konta użytkownika.
Istnieje dość długie wytłumaczenie, dlaczego dobre zarządzanie demonem odbywa się w ten sposób. Ale nie pytałeś dlaczego; tylko kiedy, jak i skąd. ☺ Bardzo krótka zasada, dlatego:
Systemy operacyjne Unix i Linux izolują procesy działające pod egidą różnych kont użytkowników. Historycznie, jeśli ktoś był w stanie przejąć demona, który działał jako superużytkownik, mógł zrobić wszystko, co mu się podobało. Z drugiej strony demon działający pod egidą nieuprzywilejowanego konta może uzyskiwać dostęp tylko do plików, katalogów, urządzeń i procesów, do których może mieć to konto nieuprzywilejowane. System wzajemnie niezaufanych programów dæmon działających pod egidą różnych kont użytkowników i niezdolnych do uzyskania dostępu / kontroli (wewnętrznych, zaufanych) plików / katalogów / procesów / urządzeń jest znacznie trudniejszy do złamania.
Dalsza lektura