UNIX rendszer felhasználói és fejlesztői felülete (1-4. ea.) Szeberényi Imre BME IIT <szebi@iit.bme.hu> Legfontosabb tulajdonságai többfelhasználós (multiuser) időosztásos (time sharing) hardware független nyílt rendszer gyártófüggetlen protokollokon, eljárásokon, és szabványokon alapul. nem kötődik egyetlen gyártóhoz sem M Ű E G Y E T E M 1 7 8 2 UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 1 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 2 - Legfontosabb tulajdonságai Unix hagymahéj struktúrája gazdag segédprogram készlet, ami lehetővé teszi komplex feladatok megoldását is I/O eszközök egységes kezelése hierarchikus állományrendszer hagymahéj struktúra A1 A2 Shell Kernel K HW A3 A4 UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 3 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 4 - Legfontosabb tulajdonságai/3 egyszerűen kezelhető, hatékony és sokoldalú programfejlesztői környezetnek készült, ezért az ezzel kapcsolatos feladatok támogatása kiemelkedő (szövegfeldolgozás) A UNIX rövid története A UNIX nem új, de mindig megújul (több mint 35 éves) Bell Laboratories (1968-1974) Saját célra szoftver fejlesztői környezet. (Denis Richie, Ken Thompson, PDP-7) V6, V7 (C nyelv); Egyetemek, kutatóintézetek (sok ötlet, felhasználók igényei szerint, inkompatibilitás). UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 5 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 6-1
A UNIX rövid története/2 Transzparens hardverkezelés A ma már elfelejtett eszközök helyére korszerűek léptek. A UNIX rövid története/3 két fő irányzat: AT&T System III, System V BSD 2.9 minden nagy gyártó saját implementációval rendelkezik (SVR4,OSF/1, BSD, Linux) szabványosítási törekvések (Posix, X/Open portability guide) legnépszerűbb PC-n futó változatai: Linux, FreeBSD, SCO, Solaris8 UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 7 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 8 - A UNIX népszerűségének okai nyílt rendszer, sok gyártó felhasználóbarát, kényelmes környezet hatékony, nagy teljesítmény, megbízhatóság olcsóság szorosan kötődik az Internet technológiákhoz mikroszámítógéptől mainframe-ig és szuperszámítógépig minden hardware platformra implementálták UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 9 - Bejelentkezés Felhasználó azonosítás grafikus, vagy alfanumerikus felületen keresztül: login password Milyen jelszót válasszunk? Nincsen benne szótárban, Nem telefonszám, Nem név Valamilyen rövidítés (módosítva!), amire emlékszünk. Jelszó változtatás: passwd UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 10 - Bejelentkezés/2 Alfanumerikus felületen nagyon fontos a terminál típusának beállítása, mert sok fajta megjelenítő létezik, melyek eltérő kezelést igényelnek. set term= (csh, tcsh) TERM= (sh, bash) Minden session egyedi terminálkezelő beállításokkal rendelkezhet. stty stty stty Minden terminálkapcsolat (session) önálló beállításokkal rendelkezik. A legfontosabbak: üzemmód raw, cooked, icanon input karakterek kezelése echo, echoe, echok, onlcr output kar. kezelése speciális karakterek erase (^H), kill (^U), intr (^C), quit(^\) susp (^Z) eof (^D), start (^Q), stop(^s) UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 11 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 12-2
stty/2 A képernyő-orientált programok mindent maguk intéznek (raw mód), míg a sor orientált programok a sor javítását, szerkesztését a terminálkezelőre bízzák (cooked mód). FONTOS tudni, hogy a bash maga intézi a sor javítását, ezért előfordulhat, hogy a bash-ban megy a, de pl. cat-ban nem! stty/3 A jelre a terminálemulációk általában ^H-t adnak, de néha ^?-t. A bash mindkettőre visszalép, de a terminálkezelő csak az erase karaktert figyeli. stty all stty erase ^H stty erase ^? UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 13 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 14 - Bejelentkezés/3 Sikeres bejelentkezés után normál esetben elindul a parancsértelmező (shell). Ez a processz értelmezi a felhasználói parancsokat és indítja a további programokat (processz = futó program). Több shell alakult ki, melyek programozói szempontból és a kényelmi szolgáltatásokban különböznek. Processz röviden A futó, élő programot processznek nevezzük. A processzek új processzeket indíthatnak (szülhetnek) a gyerekek öröklik a legfontosabb processz-attribútumokat. UID, GID, munkakatalógus megnyitott állományok esetenként szignálok Részletesen később tárgyaljuk UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 15 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 16 - A UNIX állományrendszere A UNIX szokásos fa struktúrája Az állományrendszer hierarchikus, fa Legfontosabb tulajdonságok: egyetlen gyökér (root) van a rendszerben, a kötetek (adathordozók) számától függetlenül Fájlok legfontosabb csoportja: egyszerű (plain) (jele: -) katalógus (directory) (jele: d) periféria (device) (jele: c vagy b) további csoportok: socket (jele: s) named pipe (jele: p) szimbolikus link (jele: l) boot dev etc include mnt opt s s usr tmp games usr var src home local root share UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 17 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 18-3
A UNIX szokásos fa struktúrája/2 A UNIX állományrendszere/2 include s usr games src local local usr share Katalógusok, perifériák is fájlként látszanak, általában teljesen azonos módon kezelhetők az egyszerű állományokkal (ugyanazok a rendszerhívások: open, close, read, write, stb.) Állományokat sem tartalmuk, sem nevük alapján nem kell megkülönböztetni (azaz: nincs külön szöveg fájl vagy áris fájl, nem a fájl neve vagy kiterjesztése határozza meg a fájl funkcióját) include s games src man share UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 19 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 20 - A UNIX állományrendszere/3 A fa struktúrában keresztkapcsolatok (link) hozhatók létre. A link két változata: Hard link Szimbolikus link A fájlok elnevezési szabályai rugalmasak Az állományrendszer működését beépített cache gyorsítja (buffer cache) A UNIX állományrendszere/4 A állományrendszert tartalmazó kötetek csatlakoztatás (mount) után használhatók (akár hálózaton keresztül is) root katalógus indulás után, a többi konfigurációs állományban leírt módon A fájl nyilvántartás és adminisztráció az ún. inode-okra (i-bög) épül. A fájlok tulajdonossal és védelmi kóddal rendelkeznek. UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 21 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 22 - Állományok attribútumai Minden az i-node-ban van tárolva, csak a név van a katalógusban. típus, védelmi attribútumok linkek száma uid, gid, hossz byte-ban 3 idő fizikai elhelyezés (indextáblás tárolás) A 3 idő szerepe Állományok ideje: utolsó módosítás vagy létrehozás utolsó hozzáférés utolsó státuszmódosulás Ez utóbbi teszi lehetővé a tetszőleges mélységű inkrementális mentést változás: napok: 1. napról 1. 2. 3. 4. UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 23 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 24-4
Védelmi rendszer Többfelhasználós rendszer, védeni kell: fájlok adatait (diszken) processzek adatait (memóriában) A védelem kiterjed: olvasásra írásra végrehajtásra Védelmi rendszer/2 A bejelentkezéskor felhasználó azonosítás történik és meghatározásra kerül az adott felhasználó UID-ja (felhasználó azonosító) GID-je (csoport azonosító) (A felhasználók csoportokba oszthatók. Egy felhasználó több csoportba is tartozhat) A felhasználó által létrehozott minden processz ezt örökli. UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 25 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 26 - Védelmi rendszer/3 Minden állománynak van: tulajdonosa (rendszerint aki létrehozta) felhasználói csoportja legalább 3x3-as védelmi kódja Ez utóbbi megadja, hogy a tulajdonos csoporttárs bárki más milyen műveletet végezhet az állományon. Védelmi rendszer/4 Állományokon végezhető műveletek: olvasás (r) írás (w) végrehajtás/keresés (x) Az ls parancs a védelmi kódot betűkkel jeleníti meg pl: -rwxr-xr-- 1 joska tanulo... UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 27 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 28 - Védelmi rendszer/5 Védelmi szempontból a katalógusok nem különböznek a fájloktól. A katalógust egy cédulának kell tekinteni, amire a fájl neve van felírva. Egy fájl védelme nem függ az azt tartalmazó katalógus védelmétől. drwxrwxrwx 2 joska.... munka Védelmi rendszer/6 Az előzőek alapján a fájl módosításához nem kell írási jog a befogadó katalógusra. dr-xr-xr-x 2 joska.... munka -rw-rw-rw- 1 joska.... levelem -r--r--r-- 1 joska.... levelem UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 29 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 30-5
Védelmi rendszer/7 sticky bit (t) Csak a tulajdonos törölheti, az állományt, annak ellenére, hogy a katalógus bárki számára írható. drwxrwxrwt 2 root.... tmp -r--r--r-- 1 joska.... ideiglenes Védelmi rendszer/8 setuid vagy setgid bit (s) Lehetővé teszi, hogy egy felhasználó ne a saját jogaival futtasson egy programot, hanem a program tulajdonosának jogaival. tfh: Jóska írt egy kvíz programot, amihez tartozik egy adatbázis (kvizdb.txt). -r-------- 1 joska... kvizdb.txt -r-sr-xr-x 1 joska... kviz UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 31 - UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 32 - Védelmi rendszer/9 umask Alapvetően kényelmi szerepe van a védelmi rendszerben. Az állomány létrehozásakor korlátozza (maszkolja) az új fájl védelmi kódját. A 3x3 bites védelmi kódot oktális számként kiolvasva pl. az rw-rw-rwvédelemnek a 666-os oktális szám felel meg. Fájl létrehozásakor az előírt védelmi kódból az umask által megjelölt bitek törlődnek. UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 33 - umask példa umask 022 (oktális); creat(file, 0666) 0666 0022 0644 Az általános célú programok 0666-tal hozzák létre az állományokat, így az umask fog korlátozni. Ez történik pl. az output átirányításkor is. ls > proba Ez csupán KÉNYELMI funkció, hiszen a tulajdonos bármikor megváltoztathatja a védelmi kódot. UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 34 - chmod parancs chmod okt_szám file1 file2... chmod oug+-=rwxstougx file... chmod 640 uborka chmod -w korte chmod g+w alma chmod oug=rw UNIX alapok BME-IIT Sz.I. 2012.09.05-14. - 35-6