Felhasználói jogosultságok
Akkoriban, amikor a számítógépek hatalmas gépek voltak, hihetetlen drágák voltak. Hogy a legtöbbet kihozzák belőlük, több számítógép terminál volt összekötve, ami lehetővé tette számos felhasználónak, hogy egyszerre intézzék dolgaikat. Az adatfeldolgozás és a tárolás a gépen zajlott, míg a terminálok egy kicsit többek voltak az adatmegtekintés és a bevitel eszközénél. Ha belegondolsz, ez nagyon is olyan, mint amikor mi hozzáférünk az adatokhoz a "felhőn"; Nézd meg az Amazon felhős MP3 rendszerét, a Gmail-t és a Dropbox-ot és észreveszed, hogy amíg változtatásokat lehet eszközölni helyileg, minden távoli helyen tárolt.
(Kép: Zenith Z-19 "buta" terminál; forrás: ajmexico)
Ahhoz, hogy ez működjön, az egyéni felhasználóknak fiókokra van szükségük. Kell nekik egy számukra kijelölt hely az adattárolón és szükségük van jogosultságra a parancsok és programok futtatásához. Mindenki egyéni "felhasználói jogosultságokat" kap, ami megmondja, hogy mit tehetnek meg és mit nem, hol van a rendszeren hozzáférésük és hol nincs és kinek a fájljait képesek vagy nem képesek módosítani. Minden felhasználó vegyes csoportokba kerül, ami lehetővé tesz vagy korlátoz további hozzáféréseket.
Fájl hozzáférés
Ebben a hóbortos többfelhasználós világban már eleve felállítottunk határokat arra, hogy a felhasználók mit tehetnek meg. De mi van azzal kapcsolatban, hogy mihez férhetnek hozzá? Nos, minden fájlnak vannak jogosultság beállításaik és egy tulajdonosuk. A fájl tulajdonosának meghatározása tipikusan akkor történik, amikor a fájl létrehozása, megadja, hogy melyik felhasználóhoz tartozik és csak az a felhasználó képes módosítani a hozzáférési beállításait.
A Linux világában az jogosultságok három kategóriába sorolhatóak: olvasás, írás és futtatás. Az "olvasás" jogosultság lehető teszi egy fájl tartalmának megtekintését, az "írás" jogosultság lehetővé teszi egy fájl tartalmának módosítását és a "futtatás" lehetővé teszi utasítások összességének futtatását, mint például egy script vagy program. Minden kategória ezek közül különböző osztályokra vonatkozik: felhasználó, csoport és világ. A "felhasználó" a tulajdonost jelenti, a "csoport" bármilyen felhasználót, aki ugyanabban a csoportban van, mint a tulajdonos és a "világ" bárki és mindenki.
Mappák ugyanúgy korlátozva lehetnek ezekkel a jogosultságokkal. Engedélyezheted például más más embereknek a csoportodban, hogy megnézzenek könyvtárakat és fájlokat a home mappádban, de senki másnak a csoportodon kívül.
Jogosultságok megváltoztatása Ubuntu alatt
Grafikusan
Hogy megváltoztasd egy saját tulajdonodban álló fájl jogosultságait, csak kattints rá jobb egérgombbal és menj a "Tulajdonságok"-hoz.
Megváltoztathatod, hogy vajon a tulajdonos, csoport vagy mások tudják-e olvasni és írni, csak olvasni vagy semmit. Bejelölheted a fájl futtatásának engedélyezése jelölőnégyzetet is és ez megadja az engedélyt a tulajdonosnak, a csoportnak és másoknak is egyszerre.
Parancssor
Megteheted ezt parancssorban is. Menj egy könyvtárba, amiben vannak fájlok és írd be az alábbi parancsot, hogy megtekintsd a fájlokat egy listában:
ls -al
Minden fájlt és könyvtárat követően látsz egy speciális részleget, ami kijelöli a jogosultságokat, amikkel rendelkezik. Így néz ki:
-rwxrw-r–
Az "r" az "olvasás"-t jelenti, a "w" az "írás"-t és az "x" a "futtatás"-t. A könyvtárak "d"-vel kezdődnek "-" helyett. Észreveszed azt is, hogy 10 hely van, ami értéket tartalmaz. Az elsőt figyelmen kívül hagyhatod és akkor van egy 3 beállításból álló 3 rész. Az első rész a tulajdonosra vonatkozik, a második a csoportra és a harmadik a világra.
Hogy megváltoztassuk egy fájl vagy könyvtár jogosultságait, nézzük meg a chmod parancs alapvető formáját.
chmod [osztály][műveleti jel][engedély] file
chmod [ugoa][+ vagy –] [rwx] file
Ez elsőre komplikáltnak tűnhet, de bízz bennem, nagyon egyszerű. Először nézzük meg az osztályokat:
- u: Ez a tulajdonos számára.
- g: Ez a csoport számára.
- o: Ez mindenki más számára.
- a: Ez megváltoztatja az engedélyeket az összes fentebbi számára.
Következő, a műveleti jelek:
- +: A plusz jel hozzáadja az utána következő jogosultságokat.
- -: A mínusz jel eltávolítja az utána következő jogosultságokat.
- r: Engedélyezi az olvasási hozzáférést.
- w: Engedélyezi az írási hozzáférést.
- x: Engedélyezi a futtatást.
Most rakjuk össze. Mondjuk, hogy van egy "todo.txt" nevű fájlunk, ami az alábbi jogokkal rendelkezik:
-rw-rw-r–
Ez az, hogy a tulajdonos és a csoport tudja olvasni és írni és a világ csak olvasni. Szeretnénk megváltoztatni a jogosultságokat erre:
-rwxr—–
Ez az, hogy a tulajdonos minden joggal rendelkezik és a csoport tudja olvasni. Ezt három lépésben tudjuk megtenni. Először hozzáadjuk a felhasználó számára a futtatási jogosultságot:
chmod u+x todo.txt
Aztán megvonjuk az írási jogosultságot a csoporttól:
chmod g-w todo.txt
Végül megvonjuk az olvasási jogosultságot minden más felhasználótól:
chmod o-r todo.txt
Mindezt egyesíteni is tudjuk egy parancsba:
chmod u+x,g-w,o-r todo.txt
Láthatod, hogy minden rész vesszővel van elválasztva és nincsenek szóközök.
Íme néhány hasznos jogosultság:
- -rwxr-xr-x: A tulajdonos minden jogosultsággal rendelkezik, a csoport és mások tudják olvasni a fájl tartalmát és futtatni.
- -rwxr-r-: A tulajdonos minden jogosultsággal rendelkezik, a csoport és mások csak olvasni tudják a fájlt (hasznos, ha nem bánod, hogy mások megtekinthetik a fájljaidat).
- -rwx——: A tulajdonos minden jogosultsággal rendelkezik, mindenki más semmivel (hasznos személyes scriptekhez).
- -rw-rw—-: A tulajdonos és a csoport tudja olvasni és írni (hasznos egy csoport tagjaival való együttműködéshez.)
- -rw-r-r: A tulajdonos képes olvasni és írni és más felhasználók csak olvasni tudják a fájlt (hasznos személyes fájlok tárolásához egy megosztott hálózaton).
- -rw——-: A tulajdonos képes olvasni és írni, mindenki más semmit (hasznos személyes fájlok tárolásához).
A root vagy szuper felhasználó és a rendszerfájlok
Napjainkban nem mindig futtatunk olyan rendszereket, amik több felhasználóval rendelkeznek. Miért kellene még mindig a jogosultságok miatt aggódnunk?
Nos, az Unix és származékaik - Linux, OS X, másokkal együtt - is különbséget tesznek a felhasználó által futtatott dolgok, az adminisztrátor által futtatott dolgok vagy az adminisztrátori jogokkal futtatott dolgok és a rendszer által futtatott dolgok között. Eképpen a rendszer szerves részét képező dolgok megváltoztatásához vagy módosításához adminisztrációs jogok szükségesek. Így nem rontasz el semmit véletlenül.
Ubuntu alatt a rendszerfájlok megváltoztatásához használd a "sudo" vagy "gksudo" parancsot az adminisztrátorival azonos jogok megszerzéséhez. Más disztribúciókban "root"-ra vagy "szuper felhasználó"-ra váltasz, ami gyakorlatilag ugyanazt a dolgot csinálja, amíg ki nem jelentkezel.
Legyél tudatában annak, hogy mindezen körülmények között a fájl jogosultságok megváltoztatása a programok működésképtelenségéhez vezethet, a fájl tulajdonjogának akaratlan megváltoztatására a root user-re (a tulajdonos helyett) és a rendszer kevésbé biztonságossá tételéhez (több jogosultság megadása által). Ezért ajánlott nem megváltoztatni a fájlokok jogosultságait - különösen a rendszerfájlokét - kivéve, ha szükséges vagy tudod, hogy mit csinálsz.
A fájl jogosultságok azért vannak, hogy egy alapvető biztonsági rendszert nyújtsanak a felhasználók között. Működésük ismerete segíthet beállítani egy alapvető megosztást egy több felhasználós környezetben, segíthet a "publikus" fájlok védelmében és ad egy utalást arra az esetre, amikor valami hiba csúszik a rendszer fájl tulajdonjogába.
Gondolod, hogy könnyeben el tudod magyarázni a dolgokat? Korrigálni szeretnél? Szeretnél visszaemlékezni a régi napokra? Tarts szünetet és írd le a gondolataidat a kommentekben.
Felhasznált forrás: How Do Linux File Permissions Work?
Felhasznált forrás: How Do Linux File Permissions Work?
Nincsenek megjegyzések:
Megjegyzés küldése