Jogosultságkezelés
Jogosultság kezelés Honnan tudja a rendszer hogy kik jogosultak belépni a rendszerbe? írassuk ki a cat paranccsal /etc/passwd file-t Minden felhasználó benne van, még ki is gördül a képernyőről. Megoldás?
Mi van a passwd file-ban? Az értékeket a kettőspont választja el (:) Az értékek felhasználói nev jelszó helyen valami (visszatérünk rá) felhasználó azonosító száma 0 - rendszeradminisztrátor csoport azonosító száma a szám az /etc/group file-ból származik a felhasználó teljes neve, de lehet üres is felhasználói könyvtár alap shell általában Bourne shell /bin/sh modernebb változata a Bash (Bourne Again Shell) /bin/bash
Mi van az /etc/group file-ban ? cat /etc/group Az értékeket itt is kettőspont választja el Az értékek csoport neve jelszó csoport azonosító száma felhasználok listája, vesszővel elválasztva A felhasználok csoportokba tartoznak. Ahogy a felhasználóknak, úgy a csoportoknak is vannak bizonyos jogosultságai. Mindjárt látni fogjuk.
ls -l A file-ok hosszú listázása eseten (ls -l) a file mellett a tulajdonos felhasználó neve és egy csoport név jelenik meg. A file struktúra valójában számokat tárol, de a megjelenítésnél a rendszer az /etc/passwd es /etc/group file-okból megkeresi a számnak megfelelő nevet és azt jeleníti meg. Ha nem találja meg a számnak megfelelo nevet akkor csak egy számot jelenít meg. ls –l -rwxrwxrwx n user csoport meret datum nev
File tulajdonlása Birtokos megváltoztatása a chown paranccsal: chown user file/könyvtár A file birtokosa a user lesz. Persze sajnos nem lehet mindig végrehajtani, mert nem biztos hogy az adott felhasználónak a művelet engedélyezett, vagy a felhasználó jogosult a művelet végrehajtásara. Ha egy könyvtárat és benne minden file-nak a tulajdonosat akarjuk megvaltoztatni, akkor: chown -R user könyvtár
File tulajdonlása Ha a felhasználót és a csoportot is meg akarjuk változtatni: chown user:csoport file Csak a csoport megváltoztatása chown :csoport file Sajnos nem tudjuk kipróbálni, mert mint egyszerű felhasználónak nincs jogosultságunk!!!
File engedélyek, kezelési jogosultságok 3 kategória van: felhasználó (user, u) csoport (group, g) mindenki más (other, o) A kategória azt adja meg, hogy az adott felhasználó vagy csoport mit tehet meg a file-al vagy könyvtárral.
File engedélyek, kezelési jogosultságok olvasási (read, r) írási (write, w) végrehajtási (execute, x) File eseten ha a jogosultság adva van: r : a file olvasható, tartalma kiírható w : a file írható, módosítható, törölhető x : a file végrehajtható, egy program vagy script könyvtár eseten r : a könyvtár tartalma kilistázható w : a könyvtárba lehet új file-t tenni, vagy file-t törölni x : a könyvtárba bele lehet lépni !!!
chmod működése chmod [ugoa][+-=][rwxX] nev Az [ugoa] rész adja meg hogy melyik felhasználói jogosultságra vonatkozik a módosítás. u,g,o lásd előző slide. Ha mindegyik jogosultságot meg akarjuk változtatni, akkor az "a" betűt kell használni. A + azt jelenti, hogy a jogosultságot az aktuálishoz hozzáadja A - azt jelenti, hogy a jogosultságot az aktuálisból elveszi A = azt jelenti, hogy csak a megadott jogosultsággal fog rendelkezni a file r,w,x lasd fent X azt jelenti hogy csak a könyvtárakhoz és a végrehajtható file-okhoz rendelünk 'x' jogosultsagot Van más jogosultság is, de ezekről később, ha szükséges lesz
chmod működése Nézzünk néhány példát. Vegyünk egy file-t: -rwxrwxrwx 1 peteri users 0 2007-11-11 11:11 dd chmod o-rwx dd chmod g-rwx dd chmod u-rwx dd
chmod működése Ezek persze nincsenek egészen így, mert bármikor visszaadhatok a jogosultságok. Lehet kombinálni is. chmod a-rwx dd chmod a=rw dd -rw-rw-rw- 1 peteri users 0 2007-11-11 11:11 dd
Könyvtár jogosultság kezelés Könyvtár eseten lehet hogy rekurzíven akarjuk végrehajtani a modositast, minden alkönyvtárra és a könyvtárban lévo file-ra vonatkozoan: chmod -R o-rwx könyvtár Ha egy könyvtáron belüli alkönyvtárt szeretnénk úgy módosítani, hogy bele lehessen lepni (végrehajtási jogosultság, x), de a file-ok ne legyenek végrehajthatok, akkor: chmod -R a+X könyvtár Ha a chmod -R a+x könyvtár parancsot használjuk, akkor minden alkönyvtárnak és alfile-nak futtatható jogosultsága lesz !!!
Példa A könyvtárunkban hozzunk letre egy "test" könyvtárat mkdir test a "test" könyvtárban egy "aa" es "bb" nevu filet a "test" könyvtárban egy "cc" nevu könyvtárat a "cc" könyvtárban egy "ee" könyvtárat mozgassuk at a "bb" file-t a "cc" könyvtárba cd cd test Az osszes jogosultsagot vegyük le az "aa" file-rol chmod a-rwx aa Nézzük meg ls -l
Példa Próbáljuk a tartalmat megnézni: cat aa hibát fogunk kapni !!! Próbáljuk meg letörölni rm aa A rendszer megkérdezi, hogy egy írásvédett file-t letörölhet-e Ha 'y'-t válaszolunk akkor azért letörölhető Viszont nem lehet a file-ba írni!!!
Példa Az osszes jogosultsagot vegyük le az "cc" könyvtárrol chmod a-rwx cc Próbáljuk meg a könyvtár tartalmat kiiratni ls -l cc hibat fogunk kapni !!! Most engedelyézzük a könyvtár olvasasat chmod a+r cc Listazzuk ki könyvtár tartalmat Felig mukodik, de ahhoz hogy a file-okat is kilistazzuk bele kellene tudni lepni
Példa Engedelyézzük a könyvtárba lepest chmod a+x cc Listazzuk ki könyvtár tartalmat ls -l cc Próbáljuk meg bemasolni az aa file-t a cc könyvtárba cp aa cc Hibat fogunk kapni, mert a file-t nem lehet olvasni Tegyuk olvashatova az aa file-t chmod a+r aa Hibat fogunk kapni, mert a könyvtár nem irhato
Példa Nézzük a rekurzriv esetet chmod -R o-x cc Elvesszuk masoktol a végrehajtasi jogosultsagot chmod -R o+x cc Az alkönyvtárak es a könyvtárban levo file is futtathato lesz Megint vegyük el a jogot chmod -R o+X cc Csak az alkönyvtárak legyenek futtathatok !!!!!
A jogosultság numerikusan is megadása Bit kodolast alkalmazunk olvasas (read) = 4 iras (write) = 2 végrehajtas (execute) = 1 Ezeket a szamokat kell osszeadni, hogy megkapjuk a jogosultsagot. Igy a maximalis ertek 7. Harom szamot kell egymas utan leirni: az elso szam a felhasznalora vonatkozik, a masodik a csoporta es a harmadik mindenki masra
A jogosultság numerikusan is megadása Peldaul: chmod 777 file egyenerteku chmod a=rwx file chmod 640 file chmod u=rw,g=r,o-rwx file Ez a pelda azt is mutatja, hogy tobb szimbolikus forma is megadhato egymas utan, vesszovel elvalasztva
Specialis file-ok, eszkozok Unix-ban az eszkozokhoz file-on keresztul is hozza lehet ferni Listazzuk a tartalmat: ls /dev Nagyon sok file lesz benne. Egyreszt ugyanahhoz az eszkozhoz tobbfele hozzaferesi modot tesz lehetove, masreszt olyan file-ok is vannak itt melyekhez aktualisan nem tartozik eszkoz. Ha reszletesen listazunk: ls -l /dev az elso karakter uj fajta lesz, talalunk 'b' es 'c' karaktert is. Kesobb lesz rola szo eloadason b : blokkos eszkoz (az adathoz blokkokban lehet hozzaferni) c : karakteres eszkoz (az adathoz karakterenkent lehet hozzaferni)
néhány érdekes eszkoz Nézzük meg a file-ok jogosultsagat is. /dev/hda1 Elso IDE csatornan levo merev lemez elso particioja /dev/hda2 Elso IDE csatornan levo merev lemez masodik particioja /dev/hdb1 Masodik IDE csatornan levo merev lemez elso particioja /dev/hdb2 Masodik IDE csatornan levo merev lemez masodik particioja /dev/sda1 Elso SCSI csatornan levo merev lemez elso particioja /dev/fd0 Elso floppy /dev/null "Egy mindent elnyelo fekete lyuk". Amibe ebbe kerul az mind elveszik. Fogjuk hasznalni /dev/zero Csupa 0-as byte-ot general
Speciális file-ok, rendszerinformacio A rendszerinformacio a /proc könyvtár alatt talalhato. A /proc filerendszerben a file-ok zerus nagysaguak, de tartalmuk kiirathato a cat paranccsal. Peldaul a CPU tulajdonsagai cat /proc/cpuinfo Informacio a memoriarol cat /proc/meminfo Linux verzio cat /proc/version Mennyi ideje van a gep bekapcsolva? cat /proc/uptime A felhasznalo altal is ertelmezheto formahoz futassuk az "uptime" parancsot Kernelbe betoltott modulok: cat /proc/modules