13. Fejezet - Felhasználók és hozzáférések alapvető kezelése

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

13.1. Áttekintés

A FreeBSD lehetõvé teszi, hogy egyazon idõben egyszerre több felhasználó is dolgozhasson a számítógépen. Közülük nyilvánvalóan csak egy képes elõtte ülni , de rajta kívül még sok más felhasználó is be tud jelentkezni a munkájához hálózaton keresztül. A rendszer használatához minden egyes felhasználónak hozzáféréssel kell rendelkeznie.

A fejezet elolvasása során megismerjük:

  • a FreeBSD rendszerben megtalálható különféle felhasználói hozzáférések közti különbségeket;

  • hogyan készítsünk új felhasználói hozzáféréseket;

  • hogyan töröljünk felhasználói hozzáféréseket;

  • hogyan változtassuk meg a hozzáférés adatait, mint például a felhasználók teljes nevét vagy a választott parancsértelmezõjét;

  • hogyan korlátozzuk az egyes hozzáféréseket vagy hozzáférések egy csoportját az olyan erõforrások, mint például a memória vagy a processzoridõ védelmében;

  • hogyan használjuk csoportokat a hozzáférések karbantartásának megkönnyítésére.

A fejezet elolvasásához ajánlott:

13.2. Bevezetés

A rendszert bármilyen fajta módon csak hozzáféréseken keresztül tudjuk elérni, minden programot felhasználók futtatnak, ezért a felhasználók és hozzáférések kezelése a FreeBSD rendszerek szerves része.

A FreeBSD rendszerben minden hozzáférés rendelkezik bizonyos információkkal az azonosításhoz.

Felhasználó neve

A felhasználónevet a login: felirat megjelenésekor kell megadni. A felhasználók neveinek egyedinek kell lenni a számítógépen, tehát két felhasználó nem használhatja ugyanazt a nevet. A passwd(5) man oldalon megtalálhatjuk azokat a szabályokat, amelyek az érvényes felhasználónevek létrehozására vonatkoznak. Általánosságban elmondható, hogy a felhasználóneveknek kisbetûseknek kell lenniük és legfeljebb nyolc karakterbõl állhatnak.

Jelszó

Minden hozzáféréshez tartozik egy jelszó is. Ez a jelszó lehet akár üres is, ebben az esetben nincs szükség jelszóra a hozzáféréshez. Ez viszont többnyire nagyon rossz ötlet: minden hozzáférést erõsen ajánlott jelszóval védeni.

Felhasználó azonosítója (User ID, UID)

Az UID egy szám, amely hagyományosan 0-tól 65535-ig terjed , és a felhasználó rendszeren belüli egyedi azonosítására használatos. A FreeBSD az UID-ot a felhasználók azonosítására használja - bármelyik parancs, amely lehetõvé teszi felhasználónevek megadását, át fogja alakítani UID-dé, mielõtt ténylegesen dolgozni kezdene vele. Ez tehát azt jelenti, hogy több hozzáférésünk is lehet több különbözõ felhasználónévvel, de ugyanazzal az UID-del. Legalább is a FreeBSD ezeket egyetlen felhasználónak tekinti, de nem is valószínû, hogy ilyenre valaha szükségünk is lenne.

Csoportazonosító (Group ID, GID)

A csoportazonosító (Group ID, GID) egy szám, amely általában 0-tól 65535-ig terjed , és azt az elsõdleges csoportot azonosítja be egyedileg, amelyikhez a felhasználó tartozik. A csoportok segítségével az erõforrások hozzáférésének vezérlését tudjuk megoldani a felhasználók GID-jével az UID-dek helyett. Ezzel jelentõs mértékben csökkenthetõ egyes konfigurációs állományok mérete. Egy felhasználó egyszerre több csoport tagja is lehet.

Bejelentkezési osztály

A bejelentkezési osztályok a csoportszervezés kibõvítését célozzák meg, további rugalmasságot nyújtanak, amikor a rendszert az egyes felhasználók igényeihez szabjuk.

Jelszóváltási idõ

Alapértelmezés szerint a FreeBSD nem kényszeríti rá a felhasználókat, hogy rendszeresen megváltoztassák a jelszavukat. Ezt felhasználónként kikényszeríthetjük, és így az egyes, vagy akár az összes felhasználót kötelezhetjük az adott idõközönként jelszóváltásra.

A hozzáférés lejárati ideje

A FreeBSD-ben alapértelmezés szerint nem évülnek el a hozzáférések. Ha azonban olyan hozzáféréseket kell létrehoznunk, melyeknek korlátoznunk kell az élettartamukat, mint például egy iskolában a diákok számára, akkor ilyenkor meg tudjuk adni a lejáratuk idejét. Ezen dátum után a hozzáféréssel már nem lehet bejelentkezni a rendszerbe, viszont a hozzá tartozó könyvtárban tárolt állományok továbbra is megmaradnak.

Felhasználó teljes neve

Míg a felhasználónév tökéletesen azonosítja a FreeBSD számára a hozzáférést, nem feltétlenül tükrözi a felhasználó valódi nevét. Ezt az információt is meg lehet adni a hozzáféréshez.

Felhasználói könyvtár

A felhasználói könyvtár a rendszerben található azon könyvtár teljes elérési útvonala, ahová a felhasználó a bejelentkezést követõen kerül. Elterjedt megszokás, hogy az összes felhasználó könyvtárát a /home/felhasználónév vagy a /usr/home/felhasználónév könyvtárba teszik. A felhasználók ezekben a könyvtárakban tárolják a személyes állományaikat, és tetszõleges könyvtárakat hozhatnak létre benne.

Felhasználói parancsértelmezõ

A parancsértelmezõ biztosítja azt az alapértelmezett környezetet, amelyben a felhasználó kapcsolatba tud lépni a rendszerrel. Többféle parancsértelmezõ is akad, és a tapasztaltabb felhasználók ragaszkodnak is némelyikükhöz, ami gyakran látható is a hozzáférésük beállításaiban.

Három fõ típusa van a hozzáféréseknek: az adminisztrátori, a rendszer és a felhasználói hozzáférések. Az adminisztátori hozzáférés, amelyre gyakran rootként hivatkoznak, használatos a rendszer karbantartására, és semmilyen korlátozás nem érvényes rá. A rendszerhozzáférések szolgáltatásokat futtatnak. Végezetül a felhasználói hozzáféréseket használják a valódi emberek, akik bejelentkeznek, leveleket olvasnak és így tovább.

13.3. Az adminisztrátori hozzáférés

Az adminisztátori hozzáférés, amelyet általában csak rootnak nevezünk, a rendszeradminisztrációs feladatok elvégzéséhez van igazítva, és nem ajánlott az olyan hétköznapi tevékenységek elvégzéséhez, mint például a levelek olvasása és írása, a rendszer bejárása vagy a programozás.

Ezért az adminisztrátor, eltérõen az átlagos felhasználói hozzáférésektõl, képes mindenféle határok nélkül tevékenykedni, és az adminisztrátori hozzáférés helytelen használata látványos katasztrófákat idézhet elõ. A felhasználói hozzáférések képtelenek merõ véletlenségbõl tönkretenni a rendszert, ezért általánosságban véve az a legjobb, ha egyszerû felhasználói hozzáféréseket használunk, amint módunk van rá, hacsak nincs szükségünk kifejezetten különleges jogosultságokra.

Minden esetben érdemes alaposan megfontolni az adminisztrátorként kiadott parancsokat, mivel egyetlen hiányzó szóköz vagy más egyéb karakter helyrehozhatatlan károkat okozhat a rendszerben.

Ezért, ha még nem tettük volna meg korábban, legyen az elsõ dolgunk a fejezet elolvasása után, hogy létrehozunk egy kiemelt jogosultságokkal nem rendelkezõ felhasználót saját magunk számára a hétköznapi feladatok lebonyolítására. Ez ugyanúgy vonatkozik a többfelhasználós és az egyfelhasználós módban futó rendszerekre is. A fejezet egy késõbbi részében leírjuk, hogyan lehet további hozzáféréseket létrehozni, és hogyan kell váltani egy mezei felhasználó és az adminisztrátor hozzáférése között.

13.4. Rendszerhozzáférések

A rendszer általi hozzáférések azok, amelyek olyan szolgáltatások futtatásáért felelõsek, mint például a DNS, a levelezés, a webszerverek és így tovább. Ennek oka a biztonság: ha minden szolgáltatást adminisztrátorként futtatnánk, bármit meg tudnának tenni a rendszerben.

Ilyen rendszerfelhasználók a daemon, operator, bind (a névfeloldáshoz), news, és a www.

A nobody ("senki") egy általános jogosultságok nélküli rendszerfelhasználó. Mindazonáltal nem szabad elfelejtenünk, hogy minél több szolgáltatást bízunk a nobody-ra, annál több állomány és program kerül vele kapcsolatba, ennélfogva annál erõsebbé válik a rendszer számára ez a felhasználó.

13.5. Felhasználói hozzáférések

A felhasználói hozzáférések a valós felhasználók elsõdleges eszközei a rendszer felé, és ezek a hozzáférések szigetelik el a felhasználókat és a környezeteket, megakadályozva, hogy a felhasználók kárt okozzanak akár a rendszerben, akár egymásnak, valamint lehetõvé teszik a felhasználók számára a környezeteik testreszabását anélkül, hogy a többiekét módosítani kellene.

Minden olyan személynek, aki hozzá akar férni a rendszerünkhöz, rendelkeznie kell felhasználói azonosítóval. Ezáltal meg tudjuk állapítani, ki mivel foglalkozik éppen a rendszerben, és meg tudjuk akadályozni, hogy a felhasználók elérjék egymás beállításait, olvassák egymás leveleit és így tovább.

Minden felhasználó alakítani tudja a saját környezetét, és ezzel mintegy berendezkedik a rendszerünkben, különféle parancsértelmezõk, szövegszerkesztõk, billentyû-hozzárendelések és nyelvek használatával.

13.6. A hozzáférések módosítása

Egy UNIX®-os környezetben több különbözõ parancs közül választhatunk a felhasználói hozzáférések módosításakor. A legáltalánosabb parancsokat az alábbiakban foglaljuk össze, amit ezután a használatukat részletesebben bemutató példák követnek.

ParancsLeírás

adduser(8)

az új felhasználók felvételére ajánlott parancssoros alkalmazás

rmuser(8)

a felhasználók eltávolítására ajánlott parancssoros alkalmazás

chpass(1)

rugalmas eszköz a felhasználói adatbázis információinak megváltoztatására

passwd(1)

egy egyszerû parancssoros segédprogram a felhasználói jelszavak megváltoztatásához

pw(8)

egy erõteljes és rugalmas segédeszköz a felhasználói hozzáférések teljeskörû módosításához

13.6.1. adduser

Az adduser(8) a felhasználók hozzáadására használható egyszerû program. Bejegyzéseket hoz létre a rendszer passwd és group állományaiban. Ezen kívül még létrehozza az új felhasználó könyvtárát is, odamásolja az alapértelmezett konfigurációs állományokat a /usr/shared/skel könyvtárból (ezek a felhasználóknál ponttal kezdõdõen jelennek meg, de az említett könyvtárban "dot" elõtaggal szerepelnek), és opcionálisan küld egy üdvözlõlevelet az újdonsült felhasználónak.

Példa 1. Felhasználó hozzáadása a FreeBSD-ben
# adduser
Username: jantyik
Full name: Jantyik Zsolt
Uid (Leave empty for default):
Login group [jantyik]:
Login group is jantyik. Invite jantyik into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jantyik]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jantyik
Password   : ****
Full Name  : Jantyik Zsolt
Uid        : 1001
Class      :
Groups     : jantyik wheel
Home       : /home/jantyik
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jantyik) to the user database.
Add another user? (yes/no): no
Goodbye!
#

A jelszó a beírás során egyáltalán nem jelenik meg, még csillagokat sem láthatunk a karakterek helyén. Ezért vigyázzunk, nehogy elgépeljük véletlenül a jelszót!

13.6.2. rmuser

Az rmuser(8) használható a felhasználók teljes eltávolítására a rendszerbõl. Az rmuser(8) az alábbi lépéseket hajtja végre:

  1. Eltávolítja a felhasználó crontab(1) bejegyzéseit (amennyiben léteznek).

  2. Eltávolítja az at(1) felhasználóhoz tartozó munkáit.

  3. Leállítja a felhasználó által birtokolt összes futó programot.

  4. Eltávolítja a felhasználót a rendszer helyi jelszó állományából.

  5. Eltávolítja a felhasználó könyvtárát (amennyiben az a felhasználó birtokában van).

  6. Eltávolítja a felhasználóhoz tartozó beérkezõ leveleket tartalmazó állományt a /var/mail könyvtárból.

  7. Eltávolítja a felhasználó tulajdonában levõ összes állományt az olyan ideiglenes tárhelyekrõl, mint például a /tmp könyvtár.

  8. Végezetül eltávolítja a felhasználó nevét az összes olyan csoportból, amelyhez az /etc/group szerint tartozik.

    Ha menet közben egy csoport üressé válik, és a csoport neve megegyezik a felhasználó nevével, a csoport is eltávolításra kerül. Ez kiegészíti az adduser(8) eszközzel létrehozott felhasználónkénti egyedi csoportokat.

A rmuser(8) nem használható adminisztrátori hozzáférések törlésére, mivel az szinte majdnem mindig a teljes összeomlást vonja maga után.

Alapértelmezés szerint interaktív módban mûködik, melynek során megpróbál megbizonyosodni róla, hogy tényleg a megfelelõ dolgot cselekedjük.

Példa 2. rmuser Hozzáférések interaktív eltávolítása
# rmuser jantyik
Matching password entry:
jantyik:*:1001:1001::0:0:Jantyik Zsolt:/home/jantyik:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jantyik)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jantyik -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jantyik: done.
Removing files belonging to jantyik from /tmp: done.
Removing files belonging to jantyik from /var/tmp: done.
Removing files belonging to jantyik from /var/tmp/vi.recover: done.
#

13.6.3. chpass

A chpass(1) segítségével meg tudjuk változtatni a felhasználói adatbázisban található információkat, mint például a jelszavakat, parancsértelmezõket és a személyes adatokat.

Csak a rendszeradminisztrátoroknak, mint például magának az adminisztrátornak, szabad megváltoztatnia a felhasználók adatait a chpass(1) programmal.

Amikor az opcionálisan megadható felhasználói névtõl eltekintve nem adunk át neki paramétereket, a chpass(1) egy szövegszerkesztõben megnyitja az érintett felhasználó adatait. Miután kiléptünk belõle, a felhasználói adatbázist a megváltoztatott adatoknak megfelelõen frissíti.

Ha nem adminisztrátorként hívjuk meg, akkor a rendszer kérni fogja a jelszavunkat, miután kiléptünk a szövegszerkesztõbõl.

Példa 3. A chpass interaktív használata adminisztrátorként
# A jantyik nevű felhasználó adatainak módosítása.
Login: jantyik
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jantyik
Shell: /usr/local/bin/zsh
Full Name: Jantyik Zsolt
Office Location:
Office Phone:
Home Phone:
Other information:

Egy átlagos felhasználó a bemutatott adatoknak csak igen kis részét képes módosítani, és azokat is csak saját maga számára.

Példa 4. A chpass interaktív használata normál felhasználóként
# A jantyik nevű felhasználó adatainak megváltoztatása.
Shell: /usr/local/bin/zsh
Full Name: Jantyik Zsolt
Office Location:
Office Phone:
Home Phone:
Other information:

A chfn(1) és chsh(1) parancsok csupán linkek a chpass(1) parancsra, akárcsak a ypchpass(1), ypchfn(1) és az ypchsh(1). A NIS támogatása teljesen magától mûködik, ezért az yp elõtag használata nem kötelezõ. Ha ez nem érthetõ, nem kell megijedni, a NIS-t majd a Hálózati szerverekben bemutatjuk.

13.6.4. passwd

Felhasználóként a saját jelszavunkat, adminisztrátorként pedig bármelyik felhasználó jelszavát a passwd(1) segítségével váloztathatjuk meg a megszokott módon.

A véletlen balesetek és az illetéktelen változtatások ellen védelmet nyújt, hogy az eredeti jelszót is meg kell adnunk az új jelszó beállításához.

Példa 5. A jelszavunk megváltoztatása
% passwd
Changing local password for jantyik.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done
Példa 6. Egy másik felhasználó jelszavának megváltoztatása adminisztrátorként
# passwd jantyik
Changing local password for jantyik.
New password:
Retype new password:
passwd: updating the database...
passwd: done

Ahogy a chpass(1), az yppasswd(1) is csak egy link a passwd(1) parancsra, így a NIS mind a két megadási módban mûködik.

13.6.5. pw

A pw(8) egy olyan parancssori segédprogram, amellyel felhasználókat és csoportokat tudunk létrehozni, törölni, módosítani és megjeleníteni. Ez tulajdonképpen a rendszer felhasználókat és csoportokat tároló állományainak egyfajta kezelõfelülete. A pw(8) kiválóan paraméterezhetõ, aminek köszönhetõen remekül kiaknázható tudása a különféle parancsértelmezõk szkriptjeiben, habár a kezdõ felhasználók nehézkesebbnek érezhetik a kezelését a korábban mutatott parancsokhoz képest.

13.7. A felhasználók korlátozása

Ha már vannak felhasználóink, gyakran szóba kerülhet esetükben a rendszer használatának korlátozása. A FreeBSD rengeteg módon engedi korlátozni a rendszergazdának az egyénenként használható erõforrások mennyiségét a rendszerben. Ezek a korlátok két részre oszthatóak: a lemezkvótákra és egyéb erõforráskorlátokra.

A lemezkvóták a felhasználók lemezhasználatát korlátozzák, és lehetõvé teszik, hogy állandó újraszámolás nélkül, gyorsan ellenõrizni tudjuk ennek mértékét. A kvótákat a Az állományrendszerek kvótáiban részletezzük.

A többi erõforrás korlátozása magában foglalja a processzoridõ, memória és minden olyan erõforrás behatárolását, amihez a felhasználó csak hozzá tud férni. Ezeket bejelentkezési osztályokon keresztül határozzuk meg, ezekrõl esik itt most szó.

A bejelentkezési osztályokat az /etc/login.conf állományban adhatjuk meg. Ennek pontos ismertetése nem tárgya ennek a szakasznak, de ezt megtalálhatjuk a login.conf(5) man oldalon. Elegendõ csak annyit mondanunk, hogy minden felhasználóhoz tartozik egy bejelentkezési osztály (alapértelmezés szerint a default nevû), és minden egyes bejelentkezési osztályhoz tulajdonságok egy halmaza társul. Ezek a bejelentkezési tulajdonságok név=érték párosokból állnak, ahol név egy jól ismert azonosító, illetve az érték egy tetszõleges sztring, melyet a nevétõl függõ módon dolgozunk fel. A bejelentkezési osztályok és tulajdonságok beállítása eléggé magától értetõdõ, és a login.conf(5) man oldal is jól leírja.

A rendszer általában nem magát az /etc/login.conf állományban található beállításokat olvassa be, hanem az /etc/login.conf.db állományt, amiben gyorsabban lehet keresni. Az /etc/login.conf állományból az /etc/login.conf.db állományt az alábbi paranccsal tudjuk legyártani:

# cap_mkdb /etc/login.conf

Az erõforrások korlátozása két irányban is eltér a sima hétköznapi bejelentkezési tulajdonságoktól. Elõször is minden korláthoz létezik egy gyenge (aktuális) és egy erõs korlát. A gyenge korlátok a felhasználók vagy az alkalmazások részérõl még finomíthatóak, de az erõs korláton túl már nem. Ez utóbbit mindig tudja csökkenteni a felhasználó, de sose tudja növelni. Másodsorban a legtöbb erõforráskorlát az adott felhasználó által futtatott programokra egyenként vonatkozik, nem pedig az összesre együttesen. Megjegyezzük azonban, hogy ezeket az eltéréseket a korlátok különleges kezelése indokolja, nem pedig a bejelentkezési tulajdonságok rendszerének megvalósítása (tehát a korlátok valójában nem ezen tulajdonságok speciális esetei.)

Így aztán, minden további magyarázkodás nélkül, felsoroljunk alant a leggyakrabban alkalmazott erõforráskorlátokat (a többi, más egyéb bejelentkezési tulajdonságokkal együtt, megtalálható a login.conf(5) man oldalon).

coredumpsize

A program által létrehozott memóriakivonat maximális méretét határolja be ez a korlát, értelemszerûen a többi lemezterületre vonatkozó korlátnak (például a filesize vagy a lemezkvóták) alárendelt módon. Mindazonáltal ezt gyakran használjuk egyfajta enyhébb lemezfoglalási korlátként. Mivel nem maguk a felhasználók hozzák létre ezeket az állományokat és sokszor nem is törlik le ezeket, ez a beállítás azonban megmentheti ezeket a nagyobb programok (mint például az emacs) összeomlása során keletkezõ memóriakivonatok felesleges helyfoglalásától.

cputime

Az a maximális processzoridõ, amit a felhasználó által futtatott programok egyenként fogyaszthatnak. A vétkezõ programok futását a rendszermag leállítja.

Ez a korlát a processzoridõre vonatkozik, nem pedig a processzor kihasználtságának százalékára, ahogy a top(1) és a ps(1) szokta megjeleníteni. Ez utóbbi alapján korlátozni ugyanis, még ezen leírás készítésének pillanataiban nem lehetséges, és meglehetõsen hasztalan is lenne: egy fordítóprogram - ami minden bizonnyal egy szabályosan futó program - könnyen fel tudja emészteni majdnem az egész processzort egy idõre.

filesize

A felhasználó által birtokolható állományok maximális mérete. Eltérõen a lemezkvótáktól, ez a korlát az egyes állományokra vonatkozik, nem pedig a felhasználó összes állományára együttesen.

maxproc

A felhasználó által egyidõben, az elõtérben és a háttérben futtatható programok maximális száma. Érthetõ okokból ez az érték nem lehet nagyobb, mint a rendszerben a sysctl(8) által definiált kern.maxproc (a rendszermag által maximálisan futtatható programok számának) értéke. Érdemes még továbbá megjegyezni, hogy ez a beállítás gátolhatja a felhasználó munkáját: gyakran hasznos lehet egyszerre több példányban is bejelentkezni a rendszerbe vagy csövekkel összekapcsolt programokat futtatni. Bizonyos feladatok, mint például egy nagyobb program lefordítása, több program futására is szétterjedhetnek (például a make(1), cc(1) és egyéb köztes feldolgozókra).

memorylocked

Ezzel korlátozhatjuk az egyes futó programok által zárolható memóriaterület méretét a központi memóriában (lásd mlock(2)). Egyes rendszerkritikus programok, mint például az amd(8), zárolják magukat a központi memóriában, és ezért soha nem lapozódnak ki onnan. Ennek köszönhetõen nem érinti ezeket a rendszer lapozásból eredõ esetleges lelassulása.

memoryuse

Ez az a maximális memóriamennyiség, amelyet egy futó program egyszerre használhat. Ebbe együttesen beleértendõ a központi memóriában és a lapozóállományban elfoglalt hely. Ez ugyan nem minden szempontból korlátozza egy program memóriahasználatát, de indulásnak megfelelõ.

openfiles

A felhasználó egyes futtatott programjai által egy idõben megnyitható állományok maximális száma. FreeBSD-ben az állományok közé a foglalatok és az IPC-csatornák is beszámítanak. Ezért vigyázzunk, nehogy véletlenül túlságosan alacsonyra állítsuk ezt az értéket. Ezt rendszerszinten a kern.maxfiles sysctl(8) érték határozza meg.

sbsize

A korlátozás a felhasználó által egyszerre maximálisan elérhetõ hálózati memória és így a rendszermag puffereire vonatkozik. Eredetileg a régebbi, sok csatlakozást felemésztõ DoS (Denial of Service) támadások ellen nyújtana védelmet, de általánosságban alkalmazható a hálózati kommunikáció korlátozására is.

stacksize

Ez a felhasználó által mûködtetett egyes programok vermeinek maximális mérete. Önmagában nem elegendõ a programok által használt memóriamennyiség korlátozására, így emiatt inkább a többi korláttal együtt érdemes alkalmazni.

Van néhány tényezõ, amelyekre érdemes odafigyelni az erõforrások korlátainak beállítása során. Most következik pár tipp, javaslat és egyéb megjegyzés a témához.

  • A rendszerindítás során az /etc/rc által indított programok a daemon bejelentkezési osztályba tartoznak.

  • Habár a rendszerrel érkezõ /etc/login.conf állományban remekül be van állítva a legtöbb korlát, de nekünk, mint rendszergazdáknak, kell ismernünk a saját rendszerünk korlátait. Ezen korlátok túlzott tágításával a rendszerünk könnyen leterhelhetõvé válik, míg a túlzott szûkítésével akadályozhatjuk a hatékony használatát.

  • Az X Window System (X11) felhasználóinak a többi felhasználónál valószínûleg jóval több erõforráshoz kell tudniuk hozzáférni. Az X11 már önmagában sok erõforrást eszik, de egyben bátorítja is a felhasználókat több program párhuzamos futtatására.

  • Ne felejtsük el, hogy sok korlát az egyes különállóan futó programokra vonatkozik, nem pedig a felhasználó összes futtatott programjára. Például ha beállítjuk 50-re az openfiles értékét, a felhasználó által elindított programok mindegyike legfeljebb 50 állományt tud majd megnyitni. Emiatt a felhasználó által egyszerre ténylegesen megnyitható állományok száma az openfiles és a maxproc aktuális értékeinek szorzatából adódik. Ugyanez igaz a memóriahasználatra is.

Az erõforrások korlátozásáról, a bejelentkezési osztályokról és tulajdonságaikról a hozzájuk tartozó man oldalakon olvashatunk: cap.mkdb(1), getrlimit(2) és login.conf(5).

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:

Példa 7. 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.

Példa 8. 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.

Példa 9. 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.

Példa 10. 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.


Last modified on: 2024. március 9. by Danilo G. Baio