Powody stojące za domyślnymi grupami i użytkownikami w systemie Linux

14

Patrząc na domyślne zarządzanie użytkownikami i grupami w niektórych zwykłych dystrybucjach Linuksa (odpowiednio ArchLinux i Debian), zastanawiam się nad dwiema rzeczami i konsekwencjami modyfikacji domyślnej konfiguracji i konfiguracji.

Domyślną wartością dla USERGROUPS_ENABin /etc/login.defswydaje się być „tak”, co odzwierciedla „Domyślnie grupa zostanie również utworzona dla nowego użytkownika”, który można znaleźć w useraddczłowieku, więc za każdym razem, gdy tworzony jest nowy użytkownik, a grupa jest tworzona z tą samą nazwą i tylko z tym nowym użytkownikiem w. Czy ma to jakiś pożytek, czy jest to tylko symbol zastępczy?

Wydaje mi się, że w ten sposób tracimy część zarządzania prawami jako użytkownik / grupa / inne osoby . Czy byłoby źle mieć grupę „użytkowników” lub „stałych bywalców”, czy jakkolwiek chcesz to nazwać, która jest domyślną grupą dla każdego użytkownika zamiast posiadania własnej?

Druga część mojego pytania, która wciąż opiera się na tym, co widziałam w Arch i Debian: domyślnie jest wielu użytkowników (FTP, HTTP itp.). Czy jest to dla nich pożyteczne, czy istnieją tylko z przyczyn historycznych?

Zastanawiam się nad ich usunięciem, ale nie chcę zepsuć niczego, co mogłoby z niego skorzystać, ale nigdy czegoś takiego nie widziałem i nie mam pojęcia, co mogłoby. To samo dotyczy grup domyślnych (tty, mem itp.), Do których nigdy nie widziałem żadnego użytkownika.

Horgix
źródło
Jeśli dasz mi trochę czasu, dam ci miłą odpowiedź. Jestem tylko powolnym typerem. Może to być 30 minut lub więcej.
eyoung100,
Głównym punktem wszystkich tych grup są programy z set-group-id.
Barmar
2
Pierwsze pytanie jest bardzo zbliżone do tego .
Leiaz
@ECarterYoung: Oczywiście możesz nie spieszyć się, dzięki za to!
Horgix,
@Leiaz: Zdałem sobie sprawę, ale wciąż chciałem zapytać: „Czy źle byłoby mieć grupę„ użytkowników ”lub„ stałych bywalców ”, czy jakkolwiek to nazwać, która jest domyślną grupą dla każdego użytkownika zamiast posiadania własnej? część i zachował to, co było wcześniej, jako wstęp. Zasadniczo pisałem na StackOverflow, ale zostałem tutaj skierowany.
Horgix,

Odpowiedzi:

13

Grupy użytkowników

Ja też nie widzę dużej użyteczności w grupach dla poszczególnych użytkowników. Głównym przypadkiem użycia jest to, że jeśli użytkownik chce zezwolić „znajomym” na dostęp do swoich plików, może dodać znajomego do swojej grupy. Niewiele systemów, z którymi się spotkałem, używa tego w ten sposób.

Kiedy USERGROUPS_ENABw /etc/login.defsustawiony jest na „nie”, useradddodaje wszystkie utworzone użytkowników do grupy określonej w /etc/default/useraddprzez GROUPpola. W większości dystrybucji jest ustawiony na GID, 100który zwykle odpowiada usersgrupie. Pozwala to na bardziej ogólne zarządzanie użytkownikami. Następnie, jeśli potrzebujesz dokładniejszej kontroli, możesz ręcznie dodać te grupy i dodać do nich użytkowników, co ma sens.

Domyślnie utworzone grupy

Większość z nich pochodzi z przyczyn historycznych, ale wiele z nich ma dziś aktualne zastosowania:

  • dysk to grupa, która jest właścicielem większości urządzeń dyskowych
  • lp posiada port równoległy (i czasami jest skonfigurowany do uprawnień administratora na pucharach)
  • uucp często posiada porty szeregowe (w tym porty szeregowe USB)
  • cdrom jest wymagany do montowania uprawnień na napędzie CD
  • Niektóre systemy używają koła do uprawnień sudo; niektórzy nie
  • itp.

Inne grupy są używane przez skrypty w tle. Na przykład mangeneruje pliki tymczasowe i takie po uruchomieniu; jego proces używa grupy man dla niektórych z tych plików i ogólnie czyści po sobie.


Według Linux Standard Base Core Specification chociaż, zaledwie 3 użytkowników, którzy mają korzeni, bin i demon są absolutnie obowiązkowe . Uzasadnienie za innych grup jest:

Określenie opcjonalnych użytkowników i grup ma na celu zmniejszenie potencjalnych konfliktów nazw między aplikacjami i dystrybucjami.

Wygląda więc na to, że lepiej utrzymać te grupy na miejscu. To theorically można je usunąć bez złamania, choć dla niektórych, „tajemnicze” rzeczy mogą zacząć nie prawa pracy (np kilka stron nie renderowania jeśli zabijesz tej grupy, etc). Pozostawienie ich tam nie szkodzi i ogólnie zakłada się, że wszystkie systemy Linux je mają.

Jim Kusznir
źródło
Gdzie mogę znaleźć więcej informacji na temat generowania plików tymczasowych przez człowieka? Z otwartą stroną ps aux | grep manpodręcznika nie pokazuje mi żadnego procesu działającego w grupie użytkowników, a także find -group man /niczego nie pokazuje. Wypróbowałem z man 2.6.7.1 na standardowej instalacji Archlinux.
Horgix
4

Pytanie 1: Uzasadnienie dla tego samego użytkownika i grupy

Cześć, jestem ecyoung, a ty horgix. Codziennie chodzimy do pracy i logujemy się na ten sam serwer Linux co programiści. Pewnego dnia, nie tak dawno temu, nasz administrator systemu postanowił ułatwić sobie tworzenie i utrzymanie użytkowników, więc wyłączył tę USERGROUPS_ENABopcję i umieścił wszystkich istniejących użytkowników w nowej usersgrupie.


Ułatwiło to tworzenie użytkowników, ale ich utrzymanie nie jest widoczne, ponieważ wszyscy użytkownicy mają dostęp do wszystkich plików innych użytkowników. W środowisku korporacyjnym jest to duże nie, z powodu takich rzeczy jak Sarbanes Oxley i Segregation of Duties . Jeśli utworzę plik A, bit grupy jest ustawiony na grupę użytkowników, co oznacza, że ​​wszyscy użytkownicy mogą co najmniej odczytać plik A. Jeśli administrator sys jest leniwy, to w niektórych przypadkach wszyscy użytkownicy mogą zrobić plik RW. To pokonuje Sarbanes Oxley i SoD, ponieważ oddzielne działy nie powinny być w stanie czytać znacznie mniej pisać innych dokumentów osób.


Z włączoną opcją User / Group, jeśli utworzę dokument jako ecyoung, tylko do niego mam prawa rwx. Ponieważ nikogo innego nie ma w mojej grupie, po otwarciu mojego dokumentu widzą pustą stronę z ostrzeżeniem. Wymusza to Sarbanes-Oxley i SoD. Jeśli zapraszam innych użytkowników, ci użytkownicy będą mieli dostęp rw i dzięki temu wiem, że to, co widzą, nie wróci, by mnie ugryźć. Jak powiedzieli inni, w domu separacja może nie być dla ciebie ważna. Jeśli to określisz, możesz bezpiecznie wyłączyć tę opcję, a wszyscy użytkownicy zostaną dodani do usersgrupy z GID równym 100. Zobacz pytanie 2 poniżej.

Hipotetyczny :
pracujesz w IT, a Louis pracuje w Payroll. Louis trzyma arkusz Podatku i listy płac w swoim katalogu domowym, ale oboje jesteście w grupie użytkowników, więc otwieracie jej katalog domowy, ponieważ jest oznaczony + r dla użytkowników i znajduje jej arkusz kalkulacyjny. Na liście znajduje się twoja pensja wraz z Joe i Fredem. Myślisz, że Joe i Fred chcieliby, żebyś wiedział o ich pensji?


Pytanie 2: ID grupy od 0 do 500

Identyfikatory grupy i odwrotnie ID użytkownika 0 - 500 są zarezerwowane dla kont systemowych i dostępu do urządzenia. Zobacz tabelę wstępnie skonfigurowanych grup systemowych, aby uzyskać listę kont standardowych. Nie usuwaj ręcznie tych kont. Na przykład, jeśli chcesz usunąć użytkownika ftp, usuń demona ftp za pomocą systemu zarządzania pakietami. Spowoduje to również usunięcie konta systemowego. Usługi systemowe obejmują między innymi:

  • Usługa drukowania CUPS
  • Demon serwera MySQL
  • Demon serwera FTP
  • Serwer WWW Apace
  • Gniazdo X Server do połączeń zdalnych
  • Demon systemu dźwiękowego ALSA
  • Usługa DBUS

Są inne, więc jeśli inni czytelnicy chcą dodać lub usunąć z powyższej listy usług, zrób to.

eyoung100
źródło
5
Ładne hipotetyczne, ale porażka. 1. Domyślne uprawnienia są zwykle maskowane 022, co oznacza, że ​​i tak inni mają dostęp do odczytu. 2. Sysad jest nie tylko leniwy, ale niekompetentny, ponieważ powinien był utworzyć grupy zgodnie z działem i przypisać prawidłową grupę podczas tworzenia konta, zamiast przypisywać wszystko do jakiejś grupy. USERGROUPS_ENABPowinien pozostać wyłączony wtedy. Wyłączenie USERGROUPS_ENAB! = Umieszczenie wszystkich użytkowników w tej samej grupie.
muru
@ECarterYound w pierwszej części: Rozumiem, co masz na myśli, mówiąc o ochronie dostępu, i popraw mnie, jeśli się mylę, ale posiadanie wszystkich użytkowników w usersgrupie nie powinno stanowić problemu z właściwym zarządzaniem prawami w grupach, co nie oznacza ściśle tego samego prawa do grupy niż właściciel. Więc jedyną dobrą USERGROUPS_ENABrzeczą po włączeniu jest łatwiejsza konserwacja, ponieważ pozwala zachować domyślne prawa podczas tworzenia plików i katalogów, mając jednocześnie ograniczony dostęp dla innych użytkowników?
Horgix,
To byłoby poprawne, ale wiele osób nie zarządza grupami poprawnie, jeśli są użytkownikami domowymi. Nie mogę tego zweryfikować na pewno, ale uważam, że opiekunowie stworzyli opcję, aby wzmocnić zarządzanie uprawnieniami.
eyoung100
3

Jeśli wszyscy dzielimy domyślną grupę, jak w dawnych czasach, musimy ustawić nasz umask na 077, aby zablokować grupę. Jeśli domyślnie jestem ja, to mogę ustawić umask na 027, teraz jeśli ustawię katalog pliku na udostępnioną grupę, ta grupa może czytać. Nie muszę też bawić się trybami.

To tylko jeden przykład, ale ogólnie jest to sposób na wyłączenie grup, dopóki ich nie potrzebujesz, w sposób, który ułatwia ich włączanie i zarządzanie.

ctrl-alt-delor
źródło
1

Grupy poszczególnych użytkowników umożliwiają zarówno „prywatność w katalogu domowym”, jak i „łatwą współpracę w folderach udostępnionych”. Bez grup dla poszczególnych użytkowników możesz mieć jedno, ale nie jedno i drugie. Szczegóły poniżej:

Unix to system dla wielu użytkowników, bez względu na to, czy jest to firmowy serwer plików, czy komputer z 2 użytkownikami. „Prywatność w katalogu domowym” można zrealizować na kilka sposobów:

Ustaw „umask 077”, aby pliki były tworzone z rw dla Ciebie i bez uprawnień dla innych. Alternatywnie, 027 lub 022, więc niektóre lub wszystkie mogą czytać, ale nie zapisywać plików. Oczywistą wadą jest to, że nie można współpracować w folderze współdzielonym, ponieważ inni nie mogą pracować na plikach, które tam utworzysz, ze względu na ścisłe uprawnienia. Możesz zmienić uprawnienia do takich plików, ale jest to „zbyt dużo pracy” i często zapominane.

Do współpracy potrzebujesz czegoś w rodzaju „umask 7”, abyś ty i grupa będąca właścicielem mogli czytać i zapisywać utworzone przez siebie pliki. Jest to idealne rozwiązanie dla folderów udostępnionych i grup składających się ze wszystkich osób, które potrzebują dostępu współdzielonego. Ale tracisz prywatność w swoim folderze domowym!

Grupa na użytkownika jest rozwiązaniem! Używasz umask 7, więc wszystkie tworzone pliki otrzymują „rw dla ciebie i rw dla grupy”. Pliki w twoim katalogu domowym są tworzone z twoją osobistą grupą jako „grupa posiadająca”, więc nikt inny nie może uzyskać dostępu do tych plików pomimo pozwolenia „grupa rw”. Ponieważ nikt oprócz ciebie nie należy do tej konkretnej grupy.

Nadal możesz współpracować w folderach udostępnionych. Pliki w folderze współdzielonym otrzymują „rw” dla grupy będącej właścicielem, a sysadmin skonfigurował folder współdzielony tak, aby grupa współdzielona (zwana współpracownikami) była właścicielem grupy dla plików tam. Odbywa się to poprzez utworzenie tej grupy współpracowników, w której wszyscy współpracujący użytkownicy są członkami. Następnie administrator ustawia grupową własność folderu współdzielonego na „współpracowników” i ustawia uprawnienia SETGID dla tego folderu. Przy włączonym SETGID wszystko utworzone w folderze współdzielonym otrzyma tego samego właściciela grupy co folder współdzielony - tj. Grupa „współpracowników”. A dzięki umask 7 (lub alternatywnie 2) wszyscy ludzie w tej grupie będą mieli dostęp do odczytu i zapisu, dzięki czemu będą mogli współpracować.

Helge Hafting
źródło
0

Początkowo procesy uniksowe mogły należeć do jednej grupy na raz (kiedyś była chgrp(1)komenda z prośbą o podanie hasła grupy przechowywanego w polu hasła szczątkowego w /etc/groups). Systemy Plus były używane przez ściśle powiązaną grupę użytkowników. Sensowne było mieć wszystkich w usersgrupie i udostępniać rzeczy w całym systemie według uprawnień grupy. Brak prawdziwej świadomości bezpieczeństwa, mało podejrzliwości kilkunastu innych użytkowników. Wszystko było lokalne, na tej samej maszynie. Brak sieci do udostępniania rzeczy np. Za pośrednictwem bloga.

Dzisiejsze systemy uniksowe mają setki użytkowników, wymagania bezpieczeństwa są surowsze, a użytkownicy (i procesy) mogą należeć do kilku grup. Daj każdemu z (bardziej nieświadomych) użytkowników grupę domową i pozwól odejść od niej w celu udostępniania. Lub użyj list ACL.

vonbrand
źródło