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 a munkafolyamat indítása előtt be kell jelentkezniük a rendszerbe. Minden felhasználónak van egy bejelentkezési neve és egy hozzá tartozó jelszava. 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ő.
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.
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: 15.1. példa - Minta kimenet a fájljogosultságok bemutatására.
15.1. példa - 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
felhasználói jogoultságainak megállapításához az első oszlopot közelebbről is meg kell vizsgálni.
- |
rw- |
r-- |
--- |
Típus |
A felhasználó jogosultságai |
A csoport jogosultságai |
Egyéb felhasználók jogosultságai |
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
), lánc (l
), blokkeszköz (b
) vagy karakteres eszköz.
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 sem (–
). 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á.
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.
15.2. példa - 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
15.2. példa - Minta kimenet a könyvtár-jogosultságok bemutatására könyvtár tulajdonosát (tux
) és tulajdonos csoportját (project3
). A fájlhozzáférési jogosultságoktól (Fájlhozzáférés
) 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 a ProjectData
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 hozhatnak létre új fájlokat (w
).
Fájl vagy könyvtár hozzáférési jogosultságait a tulajdonos, valamint a root
módosíthatja a chmod 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:
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)
egy karakter a törléshez (–
), a beállításhoz (=
) vagy a beszúráshoz (+
)
a rövidítések
r
– read (olvasás)
w
– write (írás)
x
– execute (végrehajtás)
fájlnév vagy fájlnevek szóközökkel elválasztva
Ha például a tux
felhasználó (15.2. példa - Minta kimenet a könyvtár-jogosultságok bemutatására) í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égé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 fájlrendszer-összetevők tulajdonjogának és jogosultságainak vezérlésére szolgáló egyéb fontos parancsok a chown (change owner, tulajdonos módosítása) és a chgrp (change group, csoport módosítása). A chown a tulajdonjog egy másik felhasználónak történő átadására szolgál. Ilyen változtatást azonban csak a root
jogosult elvégezni.
Tegyük fel, hogy a Roadmap
fájlnak (15.2. példa - Minta kimenet a könyvtár-jogosultságok bemutatására) 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 a fájlt birtokló csoportot módosítja. A fájl tulajdonosának azonban szerepelnie kell az új csoportban. Ezen a módon a tux
(15.1. példa - Minta kimenet a fájljogosultságok bemutatására) felhasználó átállíthatja a ProjectData
fájlt birtokló csoportot a project4
fájlt birtokló csoportot a chgrp project4 ProjectData parancs használatával, feltéve, hogy ő is tagja az új csoportnak.