A CHMOD parancs
Ideje kissé részletesebben beszélnünk a chmod parancsról. Ugyanis nagyon hasznos. Ez határozza meg, hogy ki mivel mit csinálhat.
Némileg pongyolán fogalmazva, mert minden részletbe nem merülök bele e könyvben, e parancs általános alakja:
chmod xyz állománynév
ahol az xyz egy oktális, azaz 8-as számrendszerbeli szám 3 számjegye, az állománynév meg sejtjük ugye, hogy mi... Az xyz ennek megfelelően bármi olyan 3 jegyű szám lehet, aminek egyes számjegyei a 0 és 7 közt mozognak. A legnagyobb helyiértékű számjegy azt mondja meg, hogy mit művelhetsz a fájllal te (általánosabban: a fájl tulajdonosa), a második azt, mit művelhet vele az, aki a tulajdonossal egy csoportban van, a harmadik, azaz legkisebb helyiértékű azt, mit művelhet a fájllal mindenki más, azaz akárki.
A lehetséges jogok a következők: olvasás, írás, végrehajtás (azaz futtatás). Minden oktális szám 3 bitből tevődik össze, a legnagyobb helyiértékű az olvasást, a középső az írást, a legkisebb helyiértékű a végrehajtást jelenti. Ezt legkönnyebb úgy megjegyezni, hogy minden oktális számjegy felírható úgy, hogy 4+2+1, aholis a 4, a 2 és az 1 helyén is lehet az összegben nulla, ha azonban nem nulla van ott akkor a 4 jelenti az olvasást, a 2 az írást, s az 1 a végrehajtást. Eképp például a
chmod 755 enyimfile
azt jelenti, hogy te mint tulajdonos az enyimfile fájlt olvashatod, írhatod és futtathatod (mert 4+2+1=7), a csoportod tagjai illetve bárki más viszont csak olvashatja és futtathatja (de nem írhatja át), mert 4+1=5).
Gyakoribb számkombinációk és jelentéseik:
777 Bárki bármit tehet a fájllal. Biztonsági szempontból nem javallott.
755 A tulajdonos bármit tehet a fájllal, mások csak olvashatják és futtathatják. Tipikus alkalmazási területe ha te írsz egy mások által is használható szkriptet.
700 Csak a tulajdonos birizgálhatja a fájlt, ő mindent megtehet vele, mások azonban semmit.
666 Ez nem a Sátán száma: azt jelenti, a fájlt bárki írhatja és olvashatja, viszont senki által nem végrehajtható (mert nem progi és nem szkript). Ideiglenes fájlok esetén előfordulhat, hogy jól jön ez a beállítás.
644 A tulajdonos írhatja-olvashatja a fájlt, mások csak olvashatják. Nem végrehajtható fájlok esetén használatos.
600 A tulajdonos írhatja és olvashatja a fájlt, mások semmit nem csinálhatnak vele.
A chmod parancs értelmezett nemcsak közönséges fájlokra, de tartalomjegyzékekre (mappákra...) is, a következőképp:
az „olvasási” jog azt jelenti, hogy láthatjuk a tartalomjegyzékben szereplő bejegyzéseket (fájlokat illetve alkönyvtárakat). (Ez azt jelenti, hogy például az ls paranccsal kilistázhatod a tartalomjegyzéket. Nem jelenti viszont azt, hogy be is léphetsz a könyvtárba!)
Az „írási” jog azt jelenti, hogy létre tudunk hozni benne bejegyzéseket, illetve efféle bejegyzéseket törölhetünk benne. Mindezt természetesen a szokásos parancsokkal, például a cp, ln, mkdir, mv, rm, rmdir parancsokkal.
A „végrehajtási” jog azt jelenti, hogy például beléphetsz a könyvtárba, és indíthatod innen a végrehajtható fájlokat.
Miután az olvasási és végrehajtási jog nehezen érthető még ezek után is könyvtárakra, íme egy kis táblázat, a különböző variációkra. A „+” azt jelenti, sikerülni fog a megkísérelt művelet, a „×” azt jelenti, nem fog sikerülni:
Mit akarsz csinálni....................................milyen jogaid vannak a könyvtáron
..................................................................csak olvasási...............csak végrehajtási
Belépni a könyvtárba ......................................× .......................................+
Kilistázni a könyvtár tartalmát.......................+........................................×
Kimásolni onnan egy fájlt...............................× .......................................+
Futtatni onnan egy fájlt .................................× .......................................+
És mégegy fontos dolog: a jogosultságok rekurzív megváltoztatása. Ha mondjuk az „Innen” nevű alkönyvtár összes (akár alkönyvtárakban levő...) fájljának jogosultságait akarod megváltoztatni mondjuk 755-re, így használd a parancsot:
chmod -R 755 Innen