Dokumentáció/CLP10/Alapok/8.fejezet

Biztonság és felhasználók

A Linuxnak alapvető jellemzője a többfelhasználós működés. Ebből következően ugyanazon a Linux-rendszeren egyszerre több felhasználó is dolgozhat egymástól függetlenül. Minden felhasználónak van egy felhasználói fiókja, amelyet egy bejelentkezési név azonosít, és az ahhoz tartozó személyes jelszó. Minden felhasználónak saját könyvtára van, ahol a saját fájljai és beállításai tárolódnak.

Felhasználói adminisztráció

Ha a felhasználók módosítását választotta, a YaST áttekintést ad a rendszer összes helyi felhasználójáról. Nagy hálózatban dolgozva kattintson a Szűrő beállítása gombra az összes rendszerfelhasználó (például root) vagy NIS-felhasználók szűrt megjelenítéséhez. Saját szűrőbeállításokat is megadhat. Ahelyett, hogy az egyes felhasználói csoportok között kapcsolgatna, kombinálja őket a saját igényeinek megfelelően. Új felhasználók felvételéhez töltse ki a következő képernyő kötelező mezőit. Ezután az új felhasználó már bejelentkezhet a gépre az új nevével és jelszavával. A felhasználói profilok finomhangolásához használja a Részletek ablakot. Kézzel is beállíthatja a felhasználói azonosítót, a saját könyvtárat és az alapértelmezett bejelentkezési parancsértelmezőt. Rendelje hozzá az új felhasználót a szükséges csoportokhoz. Állítsa be a jelszó érvényességét a Jelszóbeállítások részben. A beállítások módosításához kattintson a Szerkesztés elemre bármikor, amikor csak szükséges. Egy felhasználó törléséhez válassza ki a listából, majd kattintson a Törlés gombra.

A speciális hálózati adminisztrációs beállítások a Szakértői beállítások részben végezhetők el; itt adhatók meg az új felhasználók létrehozásánál felkínált alapértelmezett értékek. Válassza ki a hitelesítési módszert (NIS, LDAP, Kerberos vagy Samba), és a jelszótitkosítási algoritmust. Ezek a beállítások nagy hálózatoknál fontosak.

Felhasználói adminisztráció

Csoportadminisztráció

Indítsa el a YaST vezérlőközpont csoportadminisztrációs modulját, vagy kattintson a felhasználói adminisztráció Csoportok elemére. Mindkét párbeszédablak azonos funkcionalitást biztosít, vagyis lehetővé teszi csoportok létrehozását, szerkesztését és törlését.

A YaST tartalmazza az összes csoport listáját. Egy csoport törléséhez válassza ki azt a listából (a kijelölt sor sötétkék), és kattintson a Törlés gombra. Hozzáadás és Szerkesztés esetén adja meg a csoport nevét, csoportazonosítóját (gid), valamint a tagokat a megfelelő YaST képernyőben. Ha kívánja, jelszót is megadhat a csoport módosításához. A szűrőbeállítások azonosak a Felhasználói adminisztráció párbeszédablakban megismertekkel.

Csoportadminisztráció

Biztonsági beállítások

A Helyi biztonsági beállítások menüpontban (ez a Biztonság és felhasználók részben található) válassza ki a következő négy lehetőség valamelyikét: 1. szintű önálló munkaállomásokhoz (előre beállított) 2. szintű hálózati munkaállomásokhoz (előre beállított) 3. szintű hálózati szerverekhez (előre beállított) Az egyedi beállítások készítéséhez válassza a Saját beállítások menüpontot.

Ha az első három elem valamelyikére kattintott, akkor építse be az előre meghatározott rendszerbiztonsági lehetőségek valamelyik szintjét is. Ehhez egyszerűen kattintson a Befejezés gombra. A Részletek menüpontban megtalálja az egyedi beállításokat, amelyek módosíthatók. Ha a Saját beállítások lehetőséget választotta, folytassa a további párbeszédablakokkal: nyomja meg a Tovább gombot. Itt megtalálja az alapértelmezett telepítési értékeket.

Jelszóbeállítások
Ahhoz, hogy az új jelszavakat a rendszer leellenőrizze az elfogadásuk előtt, jelölje meg az Új jelszavak ellenőrzése és a Jelszó elfogadhatóságának ellenőrzése lehetőségeket. Állítsa be az újonnan létrehozott felhasználók jelszavának minimális és maximális hosszát. Adja meg, hogy meddig legyen érvényes egy jelszó, és hogy hány nappal előtte kapjon a felhasználó lejárati figyelmeztetést a szöveges konzolba belépéskor.
Rendszerindítási beállítások
A kívánt művelet kiválasztásával adja meg, hogyan értelmezze a rendszer a Ctrl-Alt-Del billentyűkombinációt. Ez a kombináció egy szöveges konzolban beírva általában a rendszer újraindítását eredményezi. Ne módosítsa ezt a beállítást, hacsak a gép vagy szerver nem nyilvánosan elérhető, és attól tart, hogy valaki felhatalmazás nélkül végrehajtja ezt a műveletet. Ha a Leállítás lehetőséget választja, akkor a billentyűkombináció a rendszer kikapcsolását eredményezi. A Figyelmen kívül hagyás hatására a rendszer figyelmen kívül hagyja a billentyűkombinációt.
Határozza meg a KDM leállításkori viselkedését: engedélyezze a rendszer leállítását a KDE képernyőkezelőjéből, a KDE grafikus bejelentkezési felületéből. Adjon Csak root (csak a rendszergazda számára), Minden felhasználó, Senki vagy Helyi felhasználók jogosultságot. Ha a Senki van kiválasztva, a rendszer csak a szöveges konzolból állítható le.
Bejelentkezési beállítások
Egy meghiúsult bejelentkezési kísérlet után általában várni kell egy pár másodpercet, mielőtt a rendszer ismét lehetőséget adna a bejelentkezésre. Ez sokkal nehezebbé teszi a jelszótolvajok bejelentkezését. Aktiválhatja a Bejelentkezési kísérletek naplózása és a Bejelentkezések naplózása elemeket is. Ha azt gyanítja, hogy valaki megpróbálja kideríteni a jelszavát, keresse meg a bejegyzéseket a rendszer naplófájljában (/var/log). A Távoli grafikus bejelentkezés engedélyezése részben a többi felhasználónak is lehet jogokat adni a grafikus bejelentkezési képernyő elérésére a hálózaton keresztül. Mivel ez az elérés potenciális biztonsági kockázatot jelenthet, alapértelmezésben inaktív.
Felhasználói beállítások hozzáadása
Minden felhasználó rendelkezik egy numerikus és egy alfanumerikus felhasználói azonosítóval. Az ezek közötti kapcsolat az /etc/passwd fájlban állítható be, és amennyire csak lehet, annyira egyedinek kell lennie. Ezen képernyőn látható adatok használatával adja meg a felhasználói azonosítókhoz rendelt számok tartományát (ezeket használja a rendszer új felhasználó felvételekor). A felhasználók esetében a legalább 500 megfelelő, az automatikusan generált számok 1000-től indulnak. Ehhez hasonló módon kell a csoportazonosítókat beállítani.
Egyéb beállítások
A Fájlok jogosultságainak beállítása ablakban háromféle lehetőség közül lehet választani: Alap, Biztonságos és Paranoid. A legtöbb felhasználó számára az első is elégséges. A YaST súgószövegéből további adatokat kaphat a három biztonsági szintről. A Paranoid beállítás nagyon szigorú korlátozásokat tartalmaz, és a rendszeradminisztrátori beállításokhoz szükséges műveletek alapja lehet. Ha a Paranoid beállítást választja, ne feledkezzen meg róla, hogy bizonyos programok lehet, hogy nem fognak megfelelően működni, mivel a felhasználóknak ezután nincs jogosultságuk bizonyos fájlok eléréséhez.
Ebben a párbeszédablakban határozza meg azt is, melyik felhasználó indíthatja el az updatedb programot. Ez a program, amely naponta vagy rendszerindítás után automatikusan lefut, létrehoz egy adatbázist (locatedb), amelyik minden, a számítógépen tárolt fájl helyét tartalmazza. Ha a Senki lehetőséget választja, minden felhasználó csak azokat az útvonalakat láthatja az adatbázisban, amelyek minden (jogosulatlan) felhasználó számára is láthatók. Ha a root felhasználót választja, akkor minden helyi fájl indexelésre kerül, mivel a root felhasználó – mindenható felhasználóként – minden könyvtárat elérhet. Végül pedig győződjön meg róla, hogy Az aktuális könyvtár szerepeljen-e a root elérési útvonalában lehetőség ki van kapcsolva.A biztonsági beállítások befejezéséhez nyomja meg a Befejezés gombot.
Biztonsági beállítások


Felhasználók és hozzáférési jogosultságok

A kilencvenes évek elején történt bemutatkozása óta a Linuxot többfelhasználós rendszerként fejlesztették. Egyidejűleg bármennyi felhasználó használhatja. A felhasználóknak bejelentkezési nevükkel és a hozzá tartozó jelszóval munkafolyamat indítása előtt be kell jelentkezniük a rendszerbe. A felhasználók ezen megkülönböztetése garantálja, hogy jogosulatlan személyek nem láthatnak olyan fájlokat, amelyre nincs engedélyük. A rendszer nagyobb módosításai (például új programok telepítése) gyakran szintén lehetetlenek vagy korlátozott mértékben hajthatók végre a normál felhasználók számára. Csak a root, vagy super user rendelkezik korlátlan lehetőségekkel a rendszer módosítására, és csak neki van minden fájlhoz hozzáférése. Azok, akik bölcsen használják ezt az alapelvet, csak akkor jelentkeznek be teljes root jogosultsággal, ha szükséges, ezzel csökkentve a véletlen adatvesztés kockázatát. Mivel normál körülmények között csak a rendszergazda törölhet rendszerfájlokat a merevlemezről, a trójai faló effektus vagy a véletlenül beírt romboló parancsok veszélye jelentősen csökkenthető.

Fájlrendszer-jogosultságok

A Linux-fájlrendszerben alapvetően minden fájl egy felhasználóhoz és egy csoporthoz tartozik. A tulajdonosok és mások írási, olvasási vagy végrehajtási jogosultsággal rendelkezhetnek a fájlokra vonatkozóan.

Egy csoport ebben az esetben a kapcsolatban álló felhasználók halmazaként definiálható, akik rendelkeznek bizonyos közös jogokkal. Adjuk például egy adott projekten dolgozó csoportnak a project3 nevet. Minden Linux-rendszeren dolgozó felhasználó tagja legalább egy tulajdonosi csoportnak, amely általában a users. A rendszeren annyi csoport létezhet, amennyire csak szükség van, de csak a root vehet fel csoportokat. A groups paranccsal minden felhasználó megtudhatja, hogy melyik csoportnak tagja.

Fájlhozzáférés
A fájlrendszer jogosultságainak szerveződése eltér a fájlok és a könyvtárak esetében. A fájljogosultságokkal kapcsolatos adatok az ls -l paranccsal jeleníthetők meg. A kimenet valahogy így fog kinézni:

Example: Minta kimenet a fájljogosultságok bemutatására

-rw-r----- 1 tux project3 14197 Jun 21  15:03 Roadmap
Amint az a harmadik oszlopban látható, ez a fájl a tux nevű felhasználóhoz tartozik és a project3 csoporthoz van hozzárendelve. A Roadmap fájl felhasználói jogoultságainak megállapításához az első oszlopot közelebbről is meg kell vizsgálni.
Az oszlop egy bevezető karakterrel kezdődik, amelyet háromszor három karakter követ. A tíz karakter közül az első a fájlrendszer-komponens típusát jelöli. A kötőjel () azt mutatja, hogy ez egy fájl. Lehet még könyvtár (d), hivatkozás (l), blokkeszköz (b) vagy karakteres eszköz (c).
A következő három blokk egy szabványos mintát követ. Az első karakterek jelzik, hogy a fájl olvasható-e (r), vagy nem (). A középső w azt jelzi, hogy a vonatkozó objektum szerkeszthető, a kötőjel () pedig azt, hogy nem módosítható. A harmadik pozicióban található x azt mutatja, hogy az objektum végrehajtható. Mivel a példában szereplő fájl egy szöveges állomány, és nem olyan, amit végre lehetne hajtani, ennek az adott fájlnak a végrehajtási jogosultsága felesleges.
A példában a tux felhasználónak a Roadmap, fájl tulajdonosaként olvasási (r) és írási (w) jogosultsága van hozzá, de nem hajthatja végre (x). A project3 csoport tagjai olvashatják a fájlt, de nem módosíthatják és nem hajthatják végre. A többi felhasználó semmilyen jogosultsággal nem rendelkezik a fájlhoz. Más jogosultságok az ACL-ek (hozzáférés-vezérlési listák) segítségével rendelhetők hozzá. Részletes információ: Hozzáférés-vezérlési listák; további háttéradatok találhatók még az Adminisztrátori kézikönyv megfelelő fejezetében.
Könyvtár-jogosultságok
A könyvtárak hozzáférési jogosultságának a típusa d. Könyvtárak esetében az egyedi jogosultságoknak egy kicsit eltérő a jelentése.


Example: Minta kimenet a könyvtár-jogosultságok bemutatására

drwxrwxr-x 1 tux project3 35 Jun 21 15:15  ProjectData
A példában könnyű felismerni a ProjectData könyvtár tulajdonosát (tux) és tulajdonos csoportját (project3). A fájlhozzáférési jogosultságoktól eltérően a beállított olvasási jogosultság (r) azt jelenti, hogy a könyvtár tartalma megjeleníthető. Az írási (w) jogosultság azt jeleni, hogy új fájlokat lehet létrehozni. A végrehajtható jogosultság (x) azt jelenti, hogy a felhasználó beléphet a könyvtárba. A fenti példában ez azt jelenti, hogy a tux felhasználó, valamint a project3 csoport tagjai egyaránt beléphetnek aProjectData könyvtárba, (x), láthatják a tartalmát (r), és fájlokat adhatnak hozzá vagy törölhetnek (w) onnan. A többi felhasználónak azonban kevesebb jogot biztosít. Beléphetnek a könyvtárba (x), böngészhetnek benne (r), de nem helyezhetnek el új fájlokat (w).

A fájljogosultságok módosítása

Hozzáférési jogosultságok módosítása
Fájl vagy könyvtár hozzáférési jogosultságait a tulajdonos, valamint a root módosíthatja achmod parancssal, jogosultságokat módosító paraméterekkel, valamint egy vagy több fájlnévvel. A paraméterek különféle kategóriákba sorolhatók:
  1. felhasználókra vonatkozók
    • u (user)–a fájl tulajdonosa
    • g (group)–a fájlt birtokló csoport
    • o (others)–a további felhasználók (ha nincs megadva paraméter, a változások az összes kategóriára vonatkozni fognak)
  2. egy karakter a törléshez (), a beállításhoz (=) vagy a beszúráshoz (+)
  3. a rövidítések
    • rread (olvasás)
    • wwrite (írás)
    • xexecute (végrehajtás)
  4. fájlnév vagy fájlnevek szóközökkel elválasztva
Ha például a tux felhasználó írási (w) jogosultságot is szeretne adni a többi felhasználónak a ProjectData könyvtárhoz, akkor ezt a chmod o+w ProjectData parancs segítsésével teheti meg.
Ha viszont (a sajátján kívül) minden más felhasználó írási jogosultságát le szeretné tiltani, akkor a következő parancsot kell megadnia: chmod go-w ProjectData. Ha minden felhasználó számára meg szeretné tiltani, hogy új fájlt adjanak hozzá a ProjectData mappához, akkor adja ki a chmod -w ProjectData parancsot. Mostantól senki más (még a tulajdonos sem) írhatja a fájlokat, amíg az írási jogosultság visszaállításra nem kerül.
A tulajdonosi jogosultságok módosítása
A fájlrendszer-összetevők tulajdonjogának és jogosultságainak vezérlésére szolgáló egyéb fontos parancsok a chown (change owner) és a chgrp (change group). A chown a tulajdonjog egy másik felhasználónak történő átadására szolgál, ilyen változás azonban csak root jogosultsággal lehetséges.
Tegyük fel, hogy a Roadmap fájlnak már nem a tux felhasználóhoz, hanem a geeko felhasználóhoz kell tartoznia. A root felhasználónak a következőt kell beírnia: chown geeko Roadmap.
A chgrp módosítja a fájlt birtokló csoportot. A fájl tulajdonosának azonban szerepelnie kell az új csoportban. Ezen a módon a tux felhasználó átállíthatja a ProjectData fájlt birtokló csoportot a project4 értékre a chgrp project4 ProjectData parancs használatával, feltéve, hogy ő is tagja az új csoportnak.

A setuid bit

Bizonyos helyzetekben a hozzáférési jogosultságok túlságosan korlátozók lehetnek. A Linuxnak emiatt vannak olyan további beállításai, amelyek lehetővé teszik az aktuális felhasználó és csoport-azonosság ideiglenes megváltoztatását egy adott művelet erejéig. A passwd programnak általában root jogosultságokra van szüksége az /etc/passwd fájl eléréséhez. Ez a fájl fontos adatokat tárol, például a felhasználók saját könyvtáráról, vagy a felhasználói és csoportazonosítókról. Egy normál felhasználó éppen ezért nem módosíthatja a passwd fájlt, mivel túl veszélyes lenne közvetlen elérést biztosítani minden felhasználónak ehhez az állományhoz. A probléma egyik lehetséges megoldása a setuid mechanizmus. A setuid (set user ID) egy speciális fájlattribútum, amely arra utasítja a rendszert, hogy bizonyos, megfelelően megjelölt programokat egy adott felhasználói azonosító nevében hajtson végre. Figyeljük meg a passwd parancsot:

-rwsr-xr-x  1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd

Látható, hogy beállításra került az s bit a felhasználói jogosultságokhoz. A setuid bit használatával minden felhasználó elindíthatja a passwd parancsot, és root jogosultságokkal hajthatja végre.

A setgid bit

A setuid attribútum felhasználókra érvényes. Van azonban egy ehhez hasonló tulajdonság csoportokra is: a setgid attribútum. Az a program, amelyhez ezt az attribútumot megadják, azzal a csoportazonosítóval fog futni, amellyel elmentésre került, mindegy, melyik felhasználó indítja el. Emiatt egy setgid bittel rendelkező könyvtárban minden újonnan létrehozott fájl és alkönyvtár ahhoz a csoporthoz fog tartozni, amelyhez a könyvtár is tartozik. Nézzük a következő példa könyvtárat:

drwxrws---   2 tux archive   48 Nov 19 17:12 backup

Látható, hogy beállításra került az s bit a csoportjogosultságoknál. A könyvtár tulajdonosa és az archive csoport tagjai elérhetik ezt a könyvtárat. A csoporthoz nem tartozó felhasználók »leképezésre« kerülnek a megfelelő csoportba; az összes megírt fájl hatályos csoportazonosítója az archive lesz. Egy mentőprogram például, amely az archive csoportazonosítóval fut, képes lesz ennek a könyvtárnak az elérésére anélkül, hogy root jogosultságokkal rendelkezne.

A ragadós (sticky) bit

Létezik még az úgynevezett ragadós (sticky) bit. Ez mást jelent, ha egy végrehajtható programhoz és mást, ha egy könyvtárhoz tartozik. Ha programhoz tartozik, akkor az ezzel jelölt fájl betöltésre kerül a RAM-ba, hogy ne kelljen minden alkalommal a merevlemezről beolvasni, amikor szükség van rá. Ezt az attribútumot ritkán használják, mivel a modern merevlemezek már elég gyorsak. Ha az attribútum egy könyvtárhoz tartozik, akkor megelőzi, hogy a felhasználók letörölhessék egymás fájljait. Tipikus példa a /tmp és /var/tmp könyvtár:

drwxrwxrwt   2 root  root   1160 2002-11-19 17:15 /tmp

Hozzáférés-vezérlési listák

A Linux fájlrendszer-objektumok (például a fájlok vagy könyvtárak) hagyományos elérési alapelvei kibővíthetők ACL-ek (hozzáférés-vezérlési listák) segítségével. Ezek lehetőséget adnak egyedi felhasználók vagy csoportok jogosultságainak hozzárandelésére a fájlrendszeri objektum eredeti tulajdonosán vagy birtokosi csoportján kívül is.

A kiterjesztett hozzáférési jogosultságokat hordozó fájlok vagy könyvtárak egy egyszerű ls -l paranccsal felismerhetők:

-rw-r--r--+ 1 tux project3 14197 Jun 21  15:03 Roadmap

Az ls kimenete nem sok változást mutat egy ACL nélküli fájl ls kimenetéhez képest. A Roadmap fájl tulajdonosa tux, aki a project3 csoportba tartozik. tux mind írási, mind olvasási jogosultsággal rendelkezik a fájlhoz, mindenki másnak pedig olvasási jogosultsága van. A fájlt egyetlen dolog különbözteti meg az ACL nélküli fájloktól: az első oszlopban található, engedélybiteket hordozó + jel.

Az ACL-ről részletes információkat kaphat a getfacl Roadmap végrehajtásával:

# file: Roadmap
# owner: tux
# group: project3
user::rw-
user:jane:rw-       effective: r--
group::r--
group:djungle:rw-   effective: r--
mask::r--
other::---

A kimenet első három sora nem tartalmaz az ls -l paranccsal el nem érhető adatokat. Ezek csak a fájlnevet, a tulajdonost és a birtokos csoportot jelzik. A 4-9. sorok tartalmazzák az ACL-bejegyzéseket. A hagyományos hozzáférési jogosultságok csak egy részhalmaza azoknak, amelyeket az ACL-lel be lehet állítani. A példa ACL írási és olvasási jogosultságokat ad a fájl tulajdonosának, valamint jane felhasználónak (4.-5. sor). A hagyományos alapelvek egy újabb felhasználó hozzáférésének engedélyezésével is bővültek. Ugyanez vonatkozik a csoportelérésre. A birtokos csoport olvasási jogosultsággal rendelkezik (6. sor), a djungle csoport írási és olvasási jogosultsággal. A 8. sor mask bejegyzése olvasási jogosultságra mérsékli jane felhasználó és a djungle csoport hatályos jogosultságait. A többi felhasználó és csoport semmilyen hozzáférést nem kap a fájlhoz (9. sor).

Itt csak a legalapvetőbb ismereteket tekintettük át. Ha többre is kíváncsi, olvassa el az Adminisztrátori kézikönyv ACL-ről szóló részeit.