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(R)), 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ć:
#
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
.
#
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
.
%
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).
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.