14.8. Groepen

Een groep is eenvoudigweg een lijst gebruikers. Groepen kunnen geïdentificeerd worden aan de hand van hun naam en GID (Groep ID). In FreeBSD (en de meeste andere UNIX® achtige systemen), worden besluiten door de kernel over of een proces iets wel of niet mag doen genomen op basis van het bijbehorende gebruikers ID en een lijst van groepen waar dat bij hoort. Anders dan bij een gebruikers ID, heeft een proces een lijst met bijbehorende groepen. Sommige programma's refereren wel eens aan het “groep ID” van een gebruiker of een proces. Meestal is dit gewoon de eerste groep in de hiervoor genoemde lijst.

De vertaling van groep ID naar groepsnaam staat in /etc/group. Dit is een tekstbestand met vier velden die door het karakter : (dubbele punt) worden gescheiden. Het eerste veld is de groepsnaam, het tweede veld is het versleutelde wachtwoord, het derde het groep ID, het vierde een door komma's gescheiden lijst van leden van de groep. Het bestand kan zonder gevaar met de hand aangepast worden (aangenomen dat er geen fouten in de syntaxis worden gemaakt, natuurlijk). Een volledige beschrijving van de syntaxis staat in group(5).

Als het onwenselijk is om /etc/group met de hand aan te passen, dan kan pw(8) gebruikt worden voor het toevoegen en wijzigen van groepen. Om bijvoorbeeld een groep met de naam teamtwo toe te voegen en daarna het bestaan van die groep te bevestigen:

Voorbeeld 14-7. Groepen toevoegen met pw(8)

# pw groupadd teamtwo
# pw groupshow teamtwo
teamtwo:*:1100:

Het getal 1100 hierboven is het groep ID van de groep teamtwo. Met de huidige instelling heeft teamtwo geen leden en is die redelijk waardeloos. Dat kan veranderen door jru aan de groep teamtwo toe te voegen.

Voorbeeld 14-8. De lijst van groepsleden instellen met pw(8)

# pw groupmod teamtwo -M jru
# pw groupshow teamtwo
teamtwo:*:1100:jru

Het argument voor de optie -M is een door komma's gescheiden lijst van gebruikers die in de aangegeven groep moeten komen. In de voorgaande paragrafen is al aangegeven dat het wachtwoordbestand ook voor iedere gebruiker een groep bevat. Een gebruiker wordt automatisch toegevoegd aan de groepenlijst door een systeem. De gebruiker wordt niet als lid getoond van die groep bij het gebruik van de optie groupshow van pw(8), maar wordt wel getoond als de informatie wordt opgevraagd via id(1) of met een soortgelijk programma. Met andere woorden: pw(8) wijzigt alleen het bestand /etc/group en probeert nooit extra informatie te lezen uit /etc/passwd.

Voorbeeld 14-9. Een nieuw lid aan een groep toevoegen met pw(8)

# pw groupmod teamtwo -m db
# pw groupshow teamtwo
teamtwo:*:1100:jru,db

Het argument voor de optie -m is een door komma's gescheiden lijst van gebruikers die aan de groep worden toegevoegd. In tegenstelling tot het vorige voorbeeld, worden deze gebruikers aan de groep toegevoegd en vervangen ze de lijst van gebruikers in de groep niet.

Voorbeeld 14-10. id(1) gebruiken om groepslidmaatschap te bepalen

% id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

Hierboven is te zien dat jru lid is van de groepen jru en teamtwo.

Meer informatie over pw(8) staat in de hulppagina en meer informatie over de opmaak van /etc/group staat in group(5).