Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:jogok

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:linux:jogok [2019/08/16 20:04] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​linux|<​ Linux]]
 +
 +====== Linuxos jogok ======
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2011, 2015
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +
 +
 +===== Bevezetés =====
 +
 +
 +A **DAC** szó a **Discretionary Access Control** szavakból alkotott betűszó, jelentése röviden ​
 +"​**Kizárólagos hozzáférés-vezérlés**"​. Ez megengedi az azonosított felhasználóknak az objektumokhoz való hozzáférést azok tulajdonságai alapján. A hozzáférés csak a tulajdonosra,​ illetve csak a csoportra állítható be. 
 +
 +Ismert még a **MAC** vagy **Mandatory Access Control**, vagy **Rendelkező hozzáférés-vezérlés**.
 +Az objektumok számára hozzáférési szabályokat hozunk létre, amely minden felhasználóra
 +(még a rootra is) érvényesek. ​
 +
 +
 +A harmadik a **Role-based Accesss Control** vagy **RBAC**. **Szerep alapú hozzáférés-vezérlés**.
 +A rendszergazda különböző szerepeket hoz létre. Az egyes objektumokhoz az adott
 +szerepben lehet hozzáférni,​ az adott jogokkal. ​
 +
 +Mi most a DAC alapú jogosultságrendszert tanulmányozzuk. Ezeket a unixos alapjogoknak is szokás
 +nevezni. ​
 +
 +
 +
 +
 +
 +===== A linuxos jogokról =====
 +
 +
 +
 +
 +Alapvetően háromféle jogot különböztetünk meg:
 +  * olvasás
 +  * írás
 +  * végrehajtás
 +
 +
 +| olvasás | Read | r |
 +| írás | Write | w |
 +| végrehajtás | eXecute | x |
 +
 +A jogok háromféle felhasználónak adhatók:
 +  * tulajdonos
 +  * csoportba tartozó felhasználó
 +  * mindenki más (aki az előző kettőben nincs benne)
 +
 +
 +A chmod paranccsal állítgatjuk a jogokat, ahol néha hivatkozunk a tulajdonosokra, ​
 +csoportokra,​ illetve mindenki másra, az alábbi táblázat alapján:
 +
 +| tulajdonos | User | u |
 +| csoport | Group | g |
 +| mások | Other | o |
 +| mindenki | All | a |
 +
 +Van egy negyedik hivatkozás,​ amely "​mindenki"​ nevet viseli. Ez tartalmazza mind az előző hármat együtt.
 +
 +
 +A mindenki mind a három fajta felhasználót jelenti, amelyet például a chmod paranccsal használhatunk. ​
 +
 +Mind a háromfajta felhasználónak állítható a olvasási, írási és végrehajtási jog. 
 +A következő táblázat amely az "ls -l" kimenetéből származhat jól szemlélteti ezt:
 +
 +Az ls -l kiemente:
 +<​code>​
 +-rw-r--r-- 1 joska joska 3184 dec   13 18.37 .bashrc
 +</​code>​
 +
 +Táblázatban a jog rész:
 +| típus | tulajdonos jogai | csoport jogai | mindenki más jogai |
 +|  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​rw-</​nowiki> ​ |  <​nowiki>​r--</​nowiki> ​ |  <​nowiki>​r--</​nowiki> ​ |
 +
 +
 +
 +
 +A típus a következő lehet:
 +
 +^  Tartalom ​ ^  Jelentés ​ ^
 +|  -  | Szimpla fájl |
 +|  d  | Könyvtár |
 +|  D  | Solaris kapu (Folyamatok közötti kommunikáció) |
 +|  c  | Karakteres eszköz (tty vagy nyomtató) |
 +|  b  | Blokkeszköz (rendszerint lemez vagy CD-ROM) |
 +|  l  | Szimbolikus link (BSD vagy SVR4) |
 +|  s  | Socket (BSD vagy SVR4) |
 +|  = vagy p | FIFO (System V, Linux) |
 +
 +A Solaris kapu csak Sun Solaris rendszeren fordul elő.
 +
 +
 +===== chown =====
 +
 +A parancsot egy állomány vagy egy könyvtár tulajdonos illetve csoport beállítása használhatjuk.
 +
 +<code bash>
 +chown joska.joska fajlnev
 +</​code>​
 +
 +
 +<code bash>
 +chown joska:joska fajlnev
 +</​code>​
 +
 +A csoport felhasználónevét nem kötelező megismételni:​
 +<code bash>
 +chown joska: fajlnev
 +</​code>​
 +vagy:
 +<code bash>
 +chown joska. fajlnev
 +</​code>​
 +
 +
 +===== chmod =====
 +
 +A chmod parancs a jogok beállítására használható. ​
 +
 +Két módon adhatunk/​vehetünk el  jogokat. Az egyik számokkal, a másik betűkkel.
 +
 +Betűkkel először megadjuk kinek adunk vagy kitől veszünk el. 
 +Ez után +/- attól függően, hogy adunk vagy elveszünk. ​
 +Majd végül mit adunk vagy mit veszünk el. 
 +A felhasználófajta halmozható,​ vagyis egymás után írhato
 +például: ug, vagy uo vagy ugo. Ez utóbbi persze egyenlő ​
 +azzal ha csak "​a"​-t adok meg. A jogok szintén halmozhatók.
 +
 +A jogokat az alábbi táblázat alapján rakhatjuk össze:
 +
 +^  Kinek/​kitől ​ ^^  Művelet ^   ​Mit ​ ^^
 +|  u  |  Saját(user) ​ |  +  |   ​r ​ | olvasás |
 +|  g  |  csoport(group) ​ |  -  |   ​w ​ | írás |
 +|  o  |  más(other) ​ |  |   ​x ​ | végrehajtás |
 +|  a  |  mindenki(all) ​ |  |     ​| ​ |
 +
 +
 +
 +
 +Nézzünk néhány példát. Szeretnénk a felhasználónak írási jogot adni az erdo.txt fájlra. ​
 +
 +<code bash>
 +chmod u+w erdo.txt
 +</​code>​
 +
 +
 +Most adjunk a csoportnak és a tulajdonosnak minden jogot:
 +<code bash>
 +chmod ug+rwx erdo.txt
 +</​code>​
 +Itt a példában halmoztuk a felhasználók fajtáját és a jogokat is. 
 +
 +
 +
 +
 +===== A jogok megadása számokkal =====
 +A jogok kifejezhető egy oktális számmal is. A chmod parancs
 +ezeket képes használni. A következő táblázat megmutatja ​
 +az egyes számok jelentését. ​
 +
 +|  0  |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  nincs jogosultság ​ |
 +|  1  |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  x  |  végrehajtási jog  |
 +|  2  |  <​nowiki>​-</​nowiki> ​ |  w  |  <​nowiki>​-</​nowiki> ​ |  írási jog  |
 +|  4  |  r  |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  olvasási jog  |
 +
 +
 +A fenti táblázat alapján a jogok keverése mellett a következő jogok adhatók:
 +
 +|  0  |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  nincs jogosultság ​ |
 +|  1  |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  x  |  végrehajtási jog  |
 +|  2  |  <​nowiki>​-</​nowiki> ​ |  w  |  <​nowiki>​-</​nowiki> ​ |  írás jog  |
 +|  3  |  <​nowiki>​-</​nowiki> ​ |  w  |  x  |  írás, végrehajtás jog  |
 +|  4  |  r  |  <​nowiki>​-</​nowiki> ​ |  <​nowiki>​-</​nowiki> ​ |  olvasási jog  |
 +|  5  |  r  |  <​nowiki>​-</​nowiki> ​ |  x  |  olvasás, végrehajtás jog  |
 +|  6  |  r  |  x  |  <​nowiki>​-</​nowiki> ​ |  olvasás, írás jog  |
 +|  7  |  r  |  w  |  x  |  minden jog  |
 +
 +
 +Ha számokkal adjuk meg a jogokat, akkor tulajdonosnak,​ a csoportnak és mindenki másnak együtt ​
 +kell megadni a jogokat. Megtehetjük,​ hogy csak egy számot adunk meg, ekkor a mindenki más jogait
 +állítjuk be, és elvesszük a tulajdonostól,​ illetve a csoporttól a jogokat. ​
 +Az alábbi példában mindenki másnak megadjuk az olvasási, írási és futtatási jogokat. ​
 +
 +
 +<code bash>
 +chmod 7 erdo.txt
 +</​code>​
 +
 +Futtatás után az ls -l erdo.txt kimenete:
 +<code bash>
 +-------rwx 1 mari info 28 márc   8 21.05 erdo.txt
 +</​code>​
 +
 +Ebben az esetben erdo.txt állományt a mari nevű felhasználó és az info csoport nem olvashatja, nem írhatja,
 +nem futtathatja,​ mindenki más igen. 
 +
 +
 +A következő példában a csoportnak olvasási és írási jogot adunk, mindenki másnak
 +olvasási, írási és végrehajtási jogot. ​
 +
 +<code bash>
 +chmod 67 erdo.txt
 +</​code>​
 +
 +
 +Az ls -l erdo.txt kimenete:
 +<code bash>
 +----rw-rwx 1 mari info 28 márc   8 21.05 a.txt
 +</​code>​
 +
 +
 +Adjunk mindenkinek olvasási és írási jogot:
 +
 +<code bash>
 +chmod 666 erdo.txt
 +</​code>​
 +
 +
 +Most adjunk a csoportnak és a tulajdonosnak minden jogot, mindenki mástól vegyük el:
 +<code bash>
 +chmod 770 erdo.txt
 +</​code>​
 +Itt a példában halmoztuk a felhasználók fajtáját és a jogokat is. 
 +
 +A stat paranccsal lekérdezhetők a számok:
 +<code bash>
 +stat -c '%A %a %n' *
 +</​code>​
 +
 +<code bash>
 +stat -c '%A %a %n' adat.txt
 +</​code>​
 +
 +===== A fájlok és a könyvtárak jogai =====
 +==== Fájlok jogai ====
 +
 +
 +^  Tartalom ​ ^  Jog  ^  Jelentés ​ ^
 +|  r  | Olvasás ​ | Olvasási jog: \\ Megnyithat egy fájlt az open() rendszerhívással \\ a read()-al pedig olvashatja. |
 +|  w  | Írás ​    | Írási jog: \\ Új fájlt hozhatsz létre, vagy egy meglévőt módosíthatsz. \\ Használhatod a write(), ​ truncate( ) vagy ftruncate( ) rendszerhívást |
 +|  x  | Futtatás | Futtatási jog: \\ Futtathatod a fájl útvonalának begépelésével,​ vagy \\ az exec() rendszerhívással. Hogy hogyan fut a program az állomány ​ első \\ két byte függvénye. A #! például futtatható scriptre utal. |
 +
 +
 +==== Könyvtárak jogai ====
 +
 +^  Tartalom ​ ^  Jog  ^  Jelentés ​ ^
 +|  r  | Olvasás ​ | Használhatod az opendir( ) és az readdir( ) függvényeket \\ (vagy az ls parancs) megnézni milyen fájlok vannak a könyvtárban. |
 +|  w  | Írás | Hozzáadhatsz,​ átnevezhetsz,​ mozgathatsz a könyvtárban |
 +|  x  | Futtatás | Megállapítható a könyvtár tartalma \\ (Pl.: Megadható a fájlok tulajdonosa és hossza a \\ könyvtárban). Futási jog szükséges könyvtárak \\ létrehozásához az adott könyvtárban,​ vagy fájlok \\ megnyitásához ​ vagy az alkönyvtárakban |
 +
 +===== Az umask =====
 +
 +Az umask határozza meg, hogy egy fájl vagy egy könyvtár milyen jogokkal jöjjön létre alapértelmezetten.
 +
 +Az umask kétéfle módon határozható meg:
 +  * szimbolikus értékekkel
 +  * oktális értékekkel
 +
 +
 +Az alapértelmezett érték 022. 
 +Az érték központilag felülírható az /​etc/​profile állományban is.
 +A felhasználók ezt az értéket felülírhatják saját .profile vagy .bashrc állományukban.
 +
 +Ha az alapértelmezett beállítást szeretnénk megváltoztatni,​ írjuk a fenti állomány egyikének
 +végére:
 +  umask 002
 +A beállított érték az újabb bejelentkezés esetén lesz érvényes.
 +
 +
 +Minden fájlnak van egy alapértelmezett létrehozási joga, ugyanígy a
 +könyvtáraknak is:
 +
 +
 +|  fájlok ​ |  666  |
 +|  könyvtárak ​ |  777  |
 +
 +Az umask segítségével ebből az alapértelmezésből veszünk még el. 
 +
 +
 +Néhány lehetőség röviden:
 +  * 022 -- Lehetővé teszi fájlok egyéni írását, amiket mások olvashatnak.
 +  * 077 -- Mindenki csak a saját állományait látja.
 +  * 002 -- Fájlokat azonos csoportban lévők írhatják.
 +    * Csoporton kívül csak olvasási jog.
 +  * 007 -- aki nem csoport tag teljesen kizárva
 +
 +==== Maszk számítás ====
 +A használható oktális értékeket a következő táblázat mutatja:
 +
 +^  oktális \\ szám  ^  amit jelent ​ ^
 +|  0  | olvasás, írás, futtatás ​ |
 +|  1  | olvasás, írás ​ |
 +|  2  | olvasás, futtatás ​ |
 +|  3  | olvasás ​ |
 +|  4  | írás, futtatás ​ |
 +|  5  | írás ​ |
 +|  6  | futtatás ​ |
 +|  7  | nincs jog  |
 +
 +==== A fájl jogainak számítása ====
 +
 +
 +  * fájl alapjogok: 666
 +  * umask: 022
 +  * számított jog: 644
 +A 644 kivonással jön létre:
 +  666-022=644
 +
 +==== A könyvtár jogainak számítása ====
 +  * könyvtár alapjogok: 777
 +  * umask: 022
 +  * számított jog: 755
 +
 +A 755 kivonással jön létre:
 +  777-022=755
 +
 +==== Példa ====
 +<code bash>
 +umask 077
 +mkdir dir1
 +touch file1
 +stat -c '%A %a %n' *
 +</​code>​
 +
 +Lássuk a stat parancs kimenetét:
 +<​code>​
 +drwx------ 700 dir1
 +-rw------- 600 file1
 +</​code>​
 +
 +
 +
 +Ugyanez az eredmény érhető el szimbolikus értékekkel:​
 +  umask u=rwx,g=,o=
 +===== Forrás =====
 +  * man 2 chmod
 +  * man 2 stat
 +  * man 2 umask
 +  * https://​www.cyberciti.biz/​tips/​understanding-linux-unix-umask-value-usage.html
  
oktatas/linux/jogok.txt · Utolsó módosítás: 2019/08/16 20:04 szerkesztette: admin