Jogosultságok kezelése UNIX rendszeren (a bűvös 777)

A JoomlaWiki wikiből

UNIX rendszeren lévő jogosultságokról lesz szó a Joomla! szemszögéből nézve.

Tartalomjegyzék

Kinek szól a leírás:

Saját UNIX rendszerű szervert üzemeltető kezdő adminisztrátoroknak, akiknek több felhasználója van.

Kinek nem szól a leírás:

A Windows rendszer alatt üzemeltetett Joomla! tulajdonosoknak.
Ha tisztában vagy a jogosultság kezeléssel.

Bevezetés

Sokat lehet olvasni a 777 jogosultságokról, fórumokon és leírásokban. Ez egy nagyon hibás jogosultsági érték, természetesen magát a rendszert nem ez védi de ez is hozzáad egy keveset a biztonsághoz. A lényeg a Végkövetkeztetésben elolvasható. Szó lesz a jogosultságok alapszintű ismertetéséről és egy példa a több felhasználós, több Joomla! oldalakat üzemeltetésének optimális jogosultságáról.

Alap

Itt csak az alapok lesznek bemutatva, ami nélkül értelmetlen lenne a leírás. Aki többet szeretne megtudni annak a keresőportálok google, yahoo remek segítséget nyújt.

Három egység van.

  • User - felhasználó
  • Group - csoport
  • Other - mindenki más

Mindhárom egységnek külön lehet beállítani a file-ra vagy könyvtárra vonatkozó jogait.

  • Read (r) - olvasható
  • Write (w) - írható
  • eXecute (x) - file esetén futatható, könyvtár esetében a könyvtárban lévő file-ok listázhatóak.
  • (s) - csoport egységben és könyvtár esetén a könyvtárban létrehozott file-ok és könyvtárak átveszik a jogosultságot.


A jogokat meg lehet adni szimbolikusan, numerikusan vagy egy felhasználó programból. A felhasználói programot elvetjük mert egy alap Joomla! v1.5.1 689 könyvtárból és 3573 file-ból áll. Szimbolikus megoldás tökéletes de egy rendszergazda körülbelül 3-4 numerikus értéket használ, és ugyis a 777 szeretnénk leváltani. Ezért a numerikus megoldást mutatjuk be.

Numerikus értékek:

u   g   o

rwx rwx rwx 421 421 421 ha szeretnénk a felhasználónak olvasás(r), írást(w) a csoportnak csak olvasást(r) a többieknek pedig nem adunk jogot akkor csak össze kell adni a betűk alatti számokat így 640 kapunk.

A jog beállítására a chmod parancsot használjuk. chmod 640 LICENSE.php

Segítségül hívjuk még a find parancsot több file megváltoztatásához. find -type f -exec chmod 640 {} \; find -type d -exec chmod 750 {} \; Ezzel a paranccsal nagyon óvatosan!!! Az -exec mögötti parancsot végrehajtja minden (f esetén file-okra d esetén könyvtárakra) amelyik könyvtárban állunk és az alattuk lévő könyvtárakra vagy a könyvtárakban lévő fileokra is. Ha például a gyökér könyvtárban vagyunk akkor ezzel a paranccsal tönkretehetjük az egész rendszert. Ezért érdemes egy könyvtárváltás parancsot kiadni a find parancs előtt.
cd /var/www/joomlasdomain.hu
find ...
Csak akkor használd ha ismered a működését és tudod mit csinálsz.

Példa

Az itt leírtak nem keverendőek össze a Joomla! weboldalon lévő regisztrációkor létrehozott felhasználókkal!

Van három Joomla oldalunk

  • fiuk.hu
  • lanyok.hu
  • osztaly.hu

Van 6 felhasználónk.

  • sanyi, jozsi, bence, jutka, viki és kata (szándékosan kisbetűvel és ékezet nélkül írva)

A webszerver a népszerűsége miatt legyen apache ami www-data felhasználóként fut. És a file-ok a /var/www/[domain].hu/ alatt találhatóak.

A fiuk.hu-t a fiúk tudják karbantartani, a lanyok.hu-t a lányok és az osztaly.hu-t jozsi, jutka és viki

Hozzuk létre a csoportokat. (addgroup, vagy /etc/group szerkesztése)

  • fiuk
  • lanyok
  • osztaly

és a /etc/group file-t módosítsuk

fiuk:x:1001:www-data,sanyi, jozsi, bence
lanyok:x:1002:www-data,jutka,viki,kata
osztaly:x:1003:www-data,jozsi,jutka,viki

A számozás természetesen el fog térni (1001,1002,1003).

most beállítjuk a felhasználó és csoport neveket chown -R sanyi.fiuk /var/www/fiuk.hu chown -R jutka.lanyok /var/www/lanyok.hu chown -R jutka.osztaly /var/www/osztaly.hu majd a jogosultságot cd /var/www/ find -type f -exec chmod 660 {} \; find -type d -exec chmod 770 {} \; find -type d -exec chmod g+s {} \;

Ezzel a következőket érjük el. A Joomla! weboldalán keresztül bármihez van jogunk, természetesen ha birtokunkban van az adminisztrátor jelszava. Az ftp-n keresztül a fiuk csoportba tartozok közül a fiuk.hu oldal bármelyik file-át törölhetik, módosíthatják de a lanyok.hu könyvtárba be sem léphetnek.
Ha a csoport file jogokból elvesszük az írás jogát 640 akkor a Joomla! adminisztrátor felületén nem tudunk módosítani a konfigurációs file-okat, de képeket feltölthetünk a media könyvtárba mert a könyvtár jogokhoz nem nyúltunk. Ftp felületen csak a feltöltő módosíthatja a file-okat de a csoportba tartozók nem, csak megnézhetik.

Végkövetkeztetés

Az egész lényege, hogy az (other) utolsó számnak mindig 0 adjunk és a csoportban legyen benne a webszervert futtató felhasználó, jelen esetben a www-data.