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.