Identyfikator grupy - Group identifier

W systemach uniksopodobnych wielu użytkowników można podzielić na grupy . Uprawnienia POSIX i konwencjonalnego systemu plików Unix są podzielone na trzy klasy: użytkownika , grupę i inne . Korzystanie z grup umożliwia delegowanie dodatkowych zdolności w zorganizowany sposób, takich jak dostęp do dysków, drukarek i innych urządzeń peryferyjnych . Ta metoda, między innymi, umożliwia również superużytkownikowi delegowanie niektórych zadań administracyjnych zwykłym użytkownikom, podobnie jak w przypadku grupy Administratorzy w systemie Microsoft Windows NT i jego pochodnych.

Identyfikator grupy , często skracany do GID , to wartości liczbowe stosuje się do reprezentowania grupowo. Zakres wartości GID różni się w różnych systemach; przynajmniej GID może zawierać się w przedziale od 0 do 32767, z jednym ograniczeniem: grupa logowania superużytkownika musi mieć identyfikator GID 0. Ta wartość liczbowa jest używana do określania grup w plikach /etc/passwd i /etc/group lub ich odpowiedników. Pliki haseł w tle i Network Information Service również odnoszą się do numerycznych identyfikatorów GID. Identyfikator grupy jest niezbędnym składnikiem systemów plików i procesów Unix .

Grupy uzupełniające

W systemach uniksowych każdy użytkownik musi być członkiem co najmniej jednej grupy, grupy podstawowej , która jest identyfikowana przez numeryczny GID wpisu użytkownika w bazie danych passwd, którą można wyświetlić za pomocą polecenia getent passwd (zwykle przechowywanego w /etc/passwd lub LDAP ) . Ta grupa jest nazywana identyfikatorem grupy podstawowej . Użytkownik może być wymieniony jako członek dodatkowych grup w odpowiednich wpisach w bazie danych grup, które można przeglądać getent group (zwykle przechowywane w /etc/group lub LDAP ); identyfikatory tych grup nazywane są dodatkowymi identyfikatorami grup .

Skuteczne kontra prawdziwe

Procesy uniksowe mają efektywny (EUID, EGID), prawdziwy (UID, GID) i zapisany (SUID, SGID) identyfikator. Zwykle są one identyczne, ale w procesach setuid i setgid są różne.

Konwencje

Rodzaj

Pierwotnie używana była 16-bitowa liczba całkowita ze znakiem. Ponieważ znak nie był konieczny - liczby ujemne nie tworzą poprawnych identyfikatorów grup - zamiast tego używana jest teraz liczba całkowita bez znaku, umożliwiająca identyfikatory grup od 0 do 65 535. Nowoczesne systemy operacyjne zwykle używają 32-bitowych liczb całkowitych bez znaku, które pozwalają na identyfikatory grup od 0 do 4 294 967 295.

Zarezerwowane zakresy

Wiele systemów Linux rezerwuje zakres numerów GID od 0 do 99 dla grup przydzielonych statycznie i 100-499 lub 100-999 dla grup dynamicznie przydzielanych przez system w skryptach poinstalacyjnych. Zakresy te są często określone w /etc/login.defs , na useradd , groupadd i podobne narzędzia.

We FreeBSD porterzy, którzy potrzebują GID dla swojego pakietu, mogą wybrać darmowy z zakresu od 50 do 999, a następnie zarejestrować tę statyczną alokację w portach / GID .

Wartości specjalne

  • 0: Superużytkownik zwykle ma GID równy zero (0).
  • −1: Wartość (gid_t) -1 jest zarezerwowana przez POSIX do identyfikacji pominiętego argumentu.
  • 65,534: ustawienia jądra Linux do 2 16 -2 = 65,534 (które mapują ścieżek systemu Linux na Grupa „nogroup”), gdy 32-bitowa GID nie pasuje do wartości powrotnej 16-bitowego wywołania systemowego. Wartość jest również zwracana przez idmapd, jeśli nazwa grupy w przychodzącym pakiecie NFSv4 nie pasuje do żadnej znanej grupy w systemie.

Grupy osobiste

Wielu administratorów systemu przydziela każdemu użytkownikowi również osobistą grupę podstawową, która ma taką samą nazwę jak nazwa logowania użytkownika i często ma również ten sam numeryczny GID, co UID użytkownika. Takie grupy osobiste nie mają innych członków i ułatwiają współpracę z innymi użytkownikami we współdzielonych katalogach, umożliwiając użytkownikom regularną pracę umask 0002 . W ten sposób nowo utworzone pliki mogą mieć domyślnie włączone uprawnienia do zapisu dla członków grupy, ponieważ zwykle umożliwia to dostęp do zapisu tylko członkom grupy osobistej, czyli tylko właścicielowi pliku. Jeśli jednak plik zostanie utworzony w udostępnionym katalogu, który należy do innej grupy i ma ustawiony bit setgid , wówczas utworzony plik zostanie automatycznie zapisany również dla członków grupy tego katalogu.

W wielu systemach Linux USERGROUPS_ENAB zmienna w /etc/login.defs kontroluje, czy polecenia takie jak useradd lub userdel automatycznie dodają lub usuwają skojarzoną grupę osobistą.

Zobacz też

Bibliografia