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>.