Jakie są niebezpieczeństwa związane z tworzeniem normalnego użytkownika o UID <500? Zakładając, że UID nie są duplikatami istniejących UID, co może pójść nie tak?
To nie jest coś, co chcę zrobić, ale coś, co widziałem i chcę wiedzieć, dlaczego nie należy tego robić. W tym przykładzie jest on na RHEL5.
Odpowiedzi:
Nie sądzę, aby istniało nieodłączne ryzyko, jest to po prostu zrobione, aby stworzyć separację między kontami systemowymi a kontami użytkowników. Z mojego doświadczenia wynika, że praktyką używania liczb poniżej 500 jest Redhatizm, a tak naprawdę nic więcej.
W systemie Solaris widziałem, że użytkownikom przypisuje się również numery zaczynające się od 100, ale dopiero po latach odkryłem, że połączenie systemów dwóch mniejszych działów powoduje pewien rodzaj koszmaru, ponieważ w dwóch działach było wielu użytkowników o tym samym UID / GID przypisany.
To jest naprawdę główne ryzyko / ból głowy podczas przypisywania identyfikatorów UID. Ponieważ UID jest tym, co ostatecznie zapisano do i-węzła dla podanych przez użytkownika plików / katalogów, nie chcesz, żebyś szedł dalej, masowo
find
szukając plików, które są własnością UID 1234 i zmieniając je na 5678 .Dlatego zastanawiając się nad wyborem identyfikatorów UID, administratorzy mogą uniknąć kłopotów na drodze.
Zastosowanie 500 i więcej jest po prostu próbą Redhata (i innych Uniksów), aby zapewnić sobie wystarczającą ilość bufora, aby wszelkie konta systemowe, które mogą wymagać utworzenia, nie zostały zmieszane z identyfikatorami UID przypisanymi do użytkowników.
/etc/login.defs
Nawiasem mówiąc, liczba 500 jest napędzany przez tego ustawienia w pliku konfiguracyjnym,
/etc/login.defs
.Możesz zmienić to na dowolne, jeśli chcesz zastąpić domyślne zachowanie poleceniami
useradd
/adduser
.Strona man dodana przez użytkownika
Jeśli spojrzysz na
useradd
stronę manuala, zauważysz tę część, która omawia domyślną wartość GID, ale ten komentarz dotyczy również UID:fragment
Konta systemowe
Inną rzeczą, na którą należy zwrócić uwagę na
useradd
stronie podręcznika, jest ten bit dotyczący generowania kont systemowych.fragment
Ta metoda (
useradd -r ...
) jest często używana przez skrypty, które są wbudowane w różne menedżery pakietów, takie jak RPM, podczas instalowania pakietu. Skrypty w ten sposób umożliwiają systemowi automatyczne wybranie następnego dostępnego identyfikatora UID / GID w danym systemie bez ryzyka nadepnięcia na identyfikatory UID / GID przypisane już użytkownikom systemu.źródło
Z punktu widzenia jądra jest tylko jeden specjalny użytkownik: UID 0. Podział zakresów UID z powodów administracyjnych ułatwia twoje życie. Typowe zakresy to sprzedawca, system, lokalny, globalny.
Użytkownicy dostawcy są instalowani podczas pierwszej instalacji systemu i są statycznie zarządzani przez dostawcę. użytkownicy systemu są instalowani na maszynie w zależności od zainstalowanych pakietów. większość programów do dodawania / usuwania użytkowników ma limit zasięgu, który obsługuje je osobno. lokalni użytkownicy to zwykli użytkownicy przypisani do poszczególnych komputerów. globalnym użytkownikom przypisuje centralna baza danych, ale są to zwykli użytkownicy. stosowanie zakresów UID zapobiega konfliktom między tymi różnymi grupami. gdzie te wartości odcięcia mogą się różnić, ale zwykle można je konfigurować.
źródło
Nie ma w tym żadnego niebezpieczeństwa. Jeśli utworzysz użytkownika z identyfikatorem UID 499, nie będzie on miał żadnych dodatkowych uprawnień. Powodem, dla którego nie zaleca się tego, jest po prostu fakt, że identyfikatory UID są zwykle zarezerwowane dla użytkowników systemu. Problemem, który można napotkać podczas tworzenia takiego identyfikatora UID, jest to, że niektóre usługi systemowe oczekują, że identyfikator UID będzie dostępny. To trochę jak tworzenie nowej usługi działającej na dobrze znanym porcie - niekoniecznie nie ma z tym problemu, ale nie jest to dobra praktyka i może powodować problemy w dalszej części drogi, gdy konfigurujesz sshd, ftpd itp.
To powiedziawszy, widziałem wiele systemów, w których użytkownicy zostali utworzeni z UID <500 bez problemu. Jednak wraz ze wzrostem bazy użytkowników i obecnością tysięcy użytkowników może być trudno rozróżnić konta użytkowników od kont systemowych. Zgodnie z zasadą braku UID <500 jest to bardzo łatwe. To dobry sposób na organizowanie kont.
źródło
Nie ma realnego niebezpieczeństwa. Jądro nie dba o wartości identyfikatora użytkownika, z wyjątkiem 0. Większość narzędzi administracyjnych również nie ma znaczenia - bardzo niewiele części systemu robi różnicę między użytkownikami systemu a użytkownikami.
Użytkownicy systemu mają zwykle dedykowane grupy, więc prawdopodobnie nie utworzy to kont należących do większej liczby grup, niż powinny.
Niektóre dystrybucje rezerwują zakres 1–499 (Red Hat i krewni) lub 1–999 (Debian i krewni) dla użytkowników systemu, w tym użytkowników przydzielonych podczas instalowania pakietu zawierającego usługę systemową, która wymaga dedykowanego użytkownika. Konwencja Debiana polega na tym, że zakres 1–99 jest przydzielany statycznie (więc utworzenie użytkownika w tym zakresie jest bardzo złym pomysłem, ponieważ może kolidować z użytkownikiem systemu), podczas gdy zakres 100–999 jest przydzielany dynamicznie (a więc tworzenie użytkownika ludzkiego w tym zakresie jest nieszkodliwy, ponieważ każdy nowy użytkownik systemu wybierze bezpłatny identyfikator użytkownika).
Możesz napotkać niewielkie niedogodności, takie jak menedżery wyświetlania, którzy nie oferują użytkownikom identyfikatorów UID poniżej progu na liście.
Głównym zagrożeniem dla odizolowanej maszyny jest to, że prawdopodobnie wprowadzisz w błąd innych administratorów systemu. W przypadku komputera w sieci, w którym identyfikatory użytkowników są udostępniane, możesz napotkać konflikty z innymi komputerami, na których użytkownicy ci mają taki sam identyfikator użytkownika jak użytkownik systemu. W sieciach o wspólnych identyfikatorach użytkowników najlepiej trzymać się zakresu 1000–65533, a nawet 10000–65533 dla użytkowników.
źródło