Unix fájl jogosultságok – a chmod használata - Szoftver Tippek

Unix fájl jogosultságok – a chmod használata

Ha már telepítettél valamilyen scriptet, legyen az egyszerű blog vagy toplista-motor, biztosan találkoztál a chmod-dal és a jogosultságok beállításával. Legtöbbször a konfigurációs fájl jogosultságait kell módosítani, hogy az írható legyen. Ilyenkor csak egyszerűen beírunk egy chmod 777 fájlnév parancsot és kész is van, a jogosultság úgy marad, ha csak a script nem annyira értelmes, hogy figyelmeztessen, pedig nem árt, ha odafigyelünk a jogosultságokra…

A kettes és a nyolcas számrendszer

Véleményem szerint a 2es számrendszer a legcsodálatosabb dolog a világon: 1 vagy 0 => igaz vagy hamis. Szóval a kettes számrendszerben ábrázol számok egyesekből és nullásokból állnak. (pl: 111101100)

Nekünk ezeket a számokat kell majd konvertálni tudnunk kettes számrendszerből nyolcasba. Nézzük kettesből nyolcasba: először hátulról kezdve hármas csoportokat képezünk a kettes számrendszerbe ábrázolt szám számjegyeiből. A fenti példa így nézne ki: 111 101 100. Ha a számjegyek száma nem 3 többszöröse, akkor előre teszünk annyi 0ást, hogy meglegyen az utolsó csoport is. Például, ha a számunk 1111101100, akkor csoportokra bontva így néz ki: 001 111 101 100. A csoportok mindegyike egy-egy számjegy lesz nyolcas számrendszerbe konvertálva. Egy csoportot a következőképpen konvertálhatunk:

számjegy1*2^2 + számjegy2*2^1+számjegy3*2^0

Ez a mi csoportjaink esetén:

111 (2) = 1*2^2 + 1*2^1 + 1*2^0 = 7 (8)

101 (2) = 1*2^2 + 0*2^1 + 1*2^0 = 5 (8)

101 (2) = 1*2^2 + 0*2^1 + 0*2^0 = 4 (8)

Szóval 111101101 (2) = 755 (8)

De ha ez túl bonyolult lenne, használhatod a következő táblázatot:

Kettes számrendszer Nyolcas számrendszer
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Felhasználók kategorizálása

Unix rendszereken a felhasználókat attól függően, hogy milyen tulajdonosi viszonyban vannak az adott állománnyal, három egységbe soroljuk:

– tulajdonos [owner]

– csoporttag [group]

– más [other]

Az owner az állomány tulajdonosa.  A group az a csoport, amelybe a fájl tulajdonosa is tartozik. Other egységbe tartozik mindenki más. Mindhárom egységnek külön-külön állíthatjuk be a jogosultságokat.

Akik már használták az “ls -l” parancsot a parancssorban, azok láthatták, hogy a lista elején egy 10 karakterből álló karakterlánc jelenik meg. Valami hasonló:

-rwxr–r–

A karakterlánc első eleme a fájl típusát jelzi. Ezek közül most csak hármat említek… Ha közönséges fájlról van szó, akkor az első helyen, mint ahogy az előző példában is látható, egy “-” karakter jelenik meg. Ha könyvtárról (directory) van szó, akkor egy “d” betű, ha pedig egy szimbolikus linkről (symbolic link), akkor egy “l”.

Közönséges fájl esetén:

-rwx-r–r–

Könyvtár esetén:

drwxr–r–

Szimbolikus link esetén:

lrwxr–r–

A következő kilenc karakter a hozzáférési jogokat jelzi a különböző egységek számára:

d  rwx      r–     r–

owner group other

A jogosultságok

Fájlok esetében három művelet végrehajtásához adhatunk jogosultságot:

– olvasás [read]

– írás [write]

– végrehajtás [execute]

Amint azt az előbb is láttuk, minden felhasználói egység jogosultságait három karakter jelzi. Az első az olvasási jog, a második az írási és a harmadik pedig a végrehajtási. Ha valamilyen művelethez nincs jogosultsága egy egységnek, akkor a megfelelő pozícióban “-” található.

Ha egy egységnek csak olvasási joga van:

r–

Ha csak írási joga van:

-w-

Ha csak végrehajtási joga van:

–x

Ha az egység bármit megtehet:

rwx

Jogosultságok beállítása

A jogosultságokat a chmod pqr fájlnév paranccsal állíthatjuk be, ahol fájlnév azon fájlnak a neve, amelynek jogosultságait szeretnénk változtatni, p, q és r pedig 8as számrendszerben ábrázolt számok. p az owner, q a group és r az other egységek jogait adja meg.

Mint mondtam a kettes számrendszer nagyszerű, csak két érték van: igen vagy nem. A jogosultságok módosításánál is ezt használjuk: van joga vagy nincs. Ha valamilyen jogot megadunk, akkor 1et, ha pedig nem, akkor 0át rakunk. Az így kapott számot pedig 8as számrendszerbe konvertáljuk.

Például, ha a következő jogokat szeretnénk beállítani

-rwxr-xr-x

akkor a számunk 111 101 101 lesz, ami 8as számrendszerben 755. A chmod 755 fájlnév parancsot használva pedig beállíthatjuk ezeket a jogosultságokat.



A hozzászólások lezárultak.