Fájlok: jogosultságokkal kapcsolatos programok
2010. February 21. - 20:54 | szerző: jonci
Oldalak: 1 2

Fájlokra vonatkozó jogok megváltoztatása – chmod

Az előbb megismert két parancs kapcsolói érvényesek itt is. Rekurzív működést idézhetünk elő a “-r” kapcsolóval. Az “-f” megadásával pedig a hibaüzenetek elhallgatását kérhetjük.

A “Fájlok: jogosultságok” alfejezetben kiveséztük a jogokat, most pedig megtanuljuk, hogyan kell beállítani. Emlékezzünk, hogy a jogokat hármas csoportba tudjuk osztani:

  1. tulajdonosra vonatkozó jogok (read, write, execute)
  2. csoportra vonatkozó jogok (read, write, execute)
  3. összes többi felhasználóra vonatkozó jogok (read, write, execute)

Megtanultuk kiszámolni is a jogokat. Így könnyen belátható, hogy ha azt akarjuk beállítani, hogy a tulajdonos olvashassa, írhassa és futtathassa (rwx = 4+2+1 = 7), a csoport csak olvashassa és futtathassa (r-x = 4+1 = 5), a többi felhasználó pedig csak olvashassa (r = 4) a fájlt, akkor azt a következő paranccsal érhetjük el:

root@bash# chmod 754 /tmp/proba
root@bash#

Foglalkoztunk a SUID (4), a SGID (2) és a Sticky (1) bitekkel is. Gyakorlásképpen állítsuk be a SGID és a Sticky bitet az előző példánál maradva:

root@bash# chmod 3754 /tmp/proba
root@bash#

Azonban, aki nem a számolgatás híve, a jogokat megadhatja betűjelekkel is. Tudni kell, hogy a tulajdonosra az “u“, a csoportra a “g“, a többi felhasználóra az “o“, mindháromra pedig az “a” betűvel hivatkozhatunk. Jogot hozzáadni a “+” (plusz), elvenni a “” (minusz) jellel lehet. Ha a “=” (egyenlőség) jelet használjuk, akkor a meglevő jogok törlődnek és csak a megadott jogok lesznek érvényesek a továbbiakban.

Ennyi bevezető után lássunk pár példát! Állítsuk be a jogokat úgy, hogy csak a tulajdonos legyen képes a fájlt írni, a csoport pedig futtatni:

root@bash# chmod u=w,g=x,o= /tmp/chmod_probafile
root@bash#

Ezután, adjuk hozzá az olvasási jogot mind a három csoporthoz:

root@bash# chmod a+r /tmp/chmod_probafile
root@bash#

Most vegyük el a futtatási jogot a csoporttól, miközben a tulajdonoshoz hozzáadjuk:

root@bash# chmod u+x,g-x /tmp/chmod_probafile
root@bash#

A csak a tulajdonosra vonatkozó jogok megadását egyszerűsíthetjük annyival, hogy nem adjuk meg, kire vonatkozik a hozzáadott vagy elvett illetve egyenlővé tett jog, ekkor ugyanis alapértelmezettként a tulajdonosra fog vonatkozni. Adjunk a tulajdonosnak írási jogot:

root@bash# chmod +w /tmp/chmod_probafile
root@bash#

Állítsuk be, hogy a tulajdonos csak olvasni és futtatni tudja a fájlt:

root@bash# chmod =rx /tmp/chmod_probafile
root@bash#

Végül lássunk még egy könnyítést. Mind a három csoport összes jogának elvételére használhatjuk a következő megadást:

root@bash# chmod = /tmp/chmod_probafile
root@bash#

A következő példában felhasználjuk azt a lehetőséget, hogy lemásolhatjuk egyik csoport jogait egy másik csoportéra. Állítsuk be, hogy a csoport ugyanolyan jogokkal rendelkezzen, mint a tulajdonos:

root@bash# chmod g=u /tmp/chmod_probafile
root@bash#

A SUID, a SGID és a Sticky biteknél hasonlóan működik:

root@bash# chmod u+s,g+s,o+t /tmp/chmod_probafile
root@bash#

Utolsóként pedig említsünk meg egy érdekességet, amit számokkal nem tudunk megtenni, illetve csak több lépéses módszerrel. Ez pedig nem más, mint a „X” (nagy x) jog. Ugyanúgy a futtatási jogot jelenti, azonban ha a “+” vagy “=” jellel akarunk futtatási (execute, x) jogot ráadni egy fájlra azzal a feltétellel, hogy csak akkor kerüljön rá a jog, ha már valamelyik csoport birtokolja a futtatási jogot. Induljunk ki a következő állapotból:

root@bash# chmod u=rw,g=,o= /tmp/chmod_probafile
root@bash# ls –lak /tmp/chmod_probafile
-rw-------    1 jonci    jonci     0 nov 27 16:30 /tmp/chmod_probafile
root@bash#

Végére egy kis érdekesség: próbáljunk futtatási jogot adni a tulajdonosnak a „X” (nagy x) jog megadásával, majd adjunk futtatási jogot a csoportnak „x” (kis x) jog megadásával, végül pedig próbáljuk meg újra a tulajdonosnak adni „X” (nagy x) jogot:

root@bash# chmod u+X /tmp/chmod_probafile
root@bash# ls –lak /tmp/chmod_probafile
-rw-------    1 jonci    jonci     0 nov 27 16:30 /tmp/chmod_probafile
root@bash# chmod g+x /tmp/chmod_probafile
root@bash# ls –lak /tmp/chmod_probafile
-rw---x---    1 jonci    jonci     0 nov 27 16:30 /tmp/chmod_probafile
root@bash# chmod u+X /tmp/chmod_probafile
root@bash# ls –lak /tmp/chmod_probafile
-rwx--x---    1 jonci    jonci     0 nov 27 16:30 /tmp/chmod_probafile
root@bash#
Oldalak: 1 2
Email This Post Email This Post Print This Post Print This Post
 
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Szólj hozzá!