13.8. Csoportok

Egy csoport nem több felhasználók összességénél. A csoportokat a nevük és az azonosítójuk (Group ID, GID) azonosítja be. A FreeBSD-ben (és a legtöbb UNIX®-szerű rendszerben) a rendszermag két tényező alapján dönt arról, mit szabad tennie egy futó programnak: ezek közül az egyik a tulajdonosának azonosítója (UID), a másik azon csoportok listája, melyeknek tagja a tulajdonos. Eltérően a UID-től, egy futó programhoz csoportok listája tartozik. Amikor egy felhasználó vagy egy futó program csoportazonosítójára hivatkoznak, általában csak a lista első elemére gondolnak.

A csoportok nevei és azonosítói közti megfeleltetéseket az /etc/group állományban találjuk. Ez lényegében egy szimpla szöveges állomány, négy kettősponttal elválasztott mezőt tartalmaz. Ezek közül az első a csoport neve, a második a titkosított jelszó, a harmadik a csoport azonosítója, a negyedik pedig a tagok vesszővel tagolt felsorolása. Akár kézzel is nyugodtan szerkeszthető (feltételezve persze, hogy nem vétünk benne szintaktikai hibát!). A szintaxis teljes leírását a group(5) man oldalon találhatjuk meg.

Ha nem akarjuk magunk szerkeszteni az /etc/group állományt, használhatjuk a pw(8) parancsot is csoportok létrehozására és törlésére. Például hozzuk létre a pg_csoport nevű csoportot és vizsgáljuk meg, valóban létrejött-e:

13.7. példa - A csoportok tagjainak beállítása a pw(8) használatával
# pw groupadd pg_csoport
# pw groupshow pg_csoport
pg_csoport:*:1100:

A fent szereplő 1100-as érték a pg_csoport csoportazonosítója. Ebben a pillanatban a pg_csoportnak még egyetlen tagja sincs, ami miatt lényegében haszontalan. Így hát hívjuk meg a pg_csoportba a korábban létrehozott jantyik nevű felhasználót.

13.8. példa - A csoport tagjainak beállítása a pw(8) használatával
# pw groupmod pg_csoport -M jantyik
# pw groupshow pg_csoport
pg_csoport:*:1100:jantyik

Az -M kapcsoló paramétere a csoportba sorolandó felhasználók neveinek vesszőkkel tagolt listája. A korábbi szakaszok alapján már tudjuk, hogy a jelszavakat tároló állomány egyben azokat a csoportokat is tartalmazza, ahova az egyes felhasználók tartoznak. Az utóbbiakat (a felhasználókat) automatikusan beleteszi a rendszer a csoportlistába, de az érintett felhasználó nem fog megjelenni tagként a pw(8) parancs groupshow utasításával, azonban az id(1) és a hozzá hasonló eszközökkel már látható lesz. Más szavakkal élve, a pw(8) csak az /etc/group állományt módosítja, és soha nem próbál meg további adatokat kiolvasni az /etc/passwd állományból.

13.9. példa - Egy új tag felvétele a csoportba a pw(8) használatával
# pw groupmod pg_csoport -m kisati
# pw groupshow pg_csoport
pg_csoport:*:1100:jantyik,kisati

Az -m kapcsoló paramétere azon felhasználók vesszővel tagolt listája, akiket fel akarunk venni a csoportba. Tehát eltérően az előző példától, ezeket a felhasználókat felvesszük a csoportba, nem pedig átírjuk velük a csoport jelenlegi tagjainak listáját.

13.10. példa - Az id(1) használata a csoporttagság megállapítására
% id jantyik
uid=1001(jantyik) gid=1001(jantyik) groups=1001(jantyik), 1100(pg_csoport)

Ahogy láthatjuk is, a jantyik nevű felhasználó tagja a jantyik nevű csoportnak és a pg_csoportnak is.

A pw(8) működéséről a saját man oldalán, az /etc/group formátumáról pedig a group(5) man oldalon találhatunk több információt.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.

Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.