Grupa jest po prostu listą użytkowników. Grupy identyfikowane są na podstawie nazwy grupy oraz numeru GID (ang. Group ID). We FreeBSD (i w większości innych systemów UNIX®), dwoma czynnikami wykorzystywanymi przez jądro do określenia czy dany proces jest uprawniony do danej czynności jest identyfikator użytkownika (UID) oraz lista grup, do których użytkownik należy. W przeciwieństwie do UID, proces dysponuje listą grup powiązanych z nim. W różnych źródłach możemy przeczytać, że pewne rzeczy odnoszą się do “identyfikatora grupy” użytkownika bądź procesu; w większości przypadków oznacza to po prostu pierwszą grupę na liście.
Odwzorowanie nazwy grupy na identyfikator grupy znajduje się w pliku /etc/group. Jest to prosty plik tekstowy z czterema polami oddzielonymi dwukropkiem. Pierwsze pole zawiera nazwę grupy, drugie zaszyfrowane hasło, trzecie identyfikator grupy a czwarte listę członków grupy oddzielonych przecinkami. Plik ten można śmiało edytować ręcznie (zakładając oczywiście, że nie popełnimy żadnych błędów składniowych!). Szczegółowy opis składni pliku znaleźć można na stronie podręcznika systemowego group(5).
Jeśli nie chcemy ręcznie edytować pliku /etc/group, by dodawać i usuwać grupy, możemy wykorzystać polecenie pw(8). Przykładowo, by dodać grupę o nazwie teamtwo a następnie potwierdzić, że została dodana możemy użyć:
Przykład 13-7. Dodawanie grupy za pomocą pw(8)
# pw groupadd teamtwo # pw groupshow teamtwo teamtwo:*:1100:
Numer 1100 powyżej jest identyfikatorem grupy teamtwo. W chwili obecnej grupa ta nie zawiera żadnych członków i tym samym jest raczej bezużyteczna. Zmieńmy to zapraszając do grupy użytkownika jru.
Przykład 13-8. Dodawanie użytkownika do grupy za pomocą pw(8)
# pw groupmod teamtwo -M jru # pw groupshow teamtwo teamtwo:*:1100:jru
Parametrem opcji -M
jest lista użytkowników oddzielonych
przecinkami, którzy są członkami grupy. Z poprzednich sekcji wiemy, że plik haseł również
zawiera przypisaną grupę dla każdego użytkownika. Jest to grupa, do której użytkownik
został automatycznie dodany przez system. Taki użytkownik nie zostanie wyświetlony jako
członek grupy gdy wykorzystamy polecenie pw(8) groupshow
, jednakże wciąż będzie wyświetlany przy użyciu polecenia
id(1) bądź innego
podobnego narzędzia. Innymi słowy, pw(8) manipuluje
jedynie plikiem /etc/group i nigdy nie spróbuje odczytać
dodatkowych informacji z pliku /etc/passwd.
Przykład 13-9. Wykorzystanie id(1) do określenia członkostwa w grupach
% id jru uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)
Jak widzimy, jru jest członkiem grup jru i teamtwo.
Więcej informacji o poleceniu pw(8) znaleźć można w jego podręczniku systemowym. Natomiast szczegółowe informacje o formacie pliku /etc/group znajdują się w podręcznik group(5).
Poprzedni | Spis treści | Następny |
Ograniczanie użytkowników | Początek rozdziału | Security |
Ten i inne dokumenty można pobrać z ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
W przypadku pytań o FreeBSD prosimy przeczytać dostępną dokumentację przed kontaktem z <questions@FreeBSD.org>.
W sprawie zapytań o tę dokumentację prosimy o kontakt z <doc@FreeBSD.org>.