Jelenlegi hely
Linux fájl és könyvtárjogosultságok kezdőknek
Linux előtt az emberek túlnyomó többsége má$ rendszereken kívül nem nagyon ismer alternatívát. Első megdöbbentő élmény: Hová lettek az exek? Mi az, hogy valami 777 jogosultságokkal rendelkezik? Mit jelent egyátalán ez? Miért nem tudom törölni valamelyik fájlt?
Eme kérdésekre próbál lehetőleg kimerítő válaszokat adni a cikk, elkerülve azt a jópár órás Google-harcot (amit szinte mindenki megvív elősször) ami legtöbbször angol találatokat dob elő, így nehezítve az amúgy sem egyszerűt.
Chmod, umask, lsattrib, chattrib elsőre értelmetlen karaktersornak tűnhet, holott a leghatékonyabb eszközök a felhasználók fájljogosultságainak variálásához.
Miről is van szó:
A Linux fájlrendszere tárolja a fájl tulajdonosának azonosítóját a fájlhoz tartozó csoportokat és a hozzáférési jogosultságot is. A hozzáférési jogosultságok ábrázolásához egy 3 jegyű számból álló kódot használ, amit fájlmodnak nevezünk.
- Első szám a saját (user) jogot
- Második szám a csoport (group) jogot
- Harmadik a többiek (others) jogait rögzíti
A saját jog alatt a fájl tulajdonosának jogait értjük, legtöbb esetben ő az adott fájl vagy könyvtár létrehozója is. Minden komponens a következő részekből áll:
- Saját r w x | 4 2 1
- Csoport r w x | 4 2 1
- Többiek r w x | 4 2 1
(Nulladik helyen esetenként a speciális jogok állnak, erről később)
- r (Read): Olvasási jog (vagyis az adott fájl ezáltal olvasható)
- w (Write): Írási jog (az adott fájl ezáltal válik írhatóvá)
- x (Executabe): Végrehajtási jog (Futási)
Jogosultságok megváltoztatása:
Egy fájlt tulajdonosi (hozzáférési) jogait csak a fájl tulajdonosa, vagy a rendszergazda tudja megváltoztatni.chmod +|-<mód> <fájlnév>
Chmodnál meg kell határozni az alábbiakat:
Adunk vagy elveszünk jogot (+ : adunk, - : elveszünk)
Kinek/kitől (saját, csoport, mások (ugo))
Milyen jogot adunk (r w x / 4 2 1 )
u – saját (User)chmod u+w munka.tar.gz Saját magunknak írási jog
g – csoport (Group)chmod o+x munka.tar.gz Másoknak futtatási jog
o – mások (Other)chmod o+x,u+w munka.tar.gz
a - mindenki (All)chmod 777 munka.tar.gz Mindenkinek minden jog, ugyanaz mint:chmod a+rwx <fájlnév>chmod 700 munka.tar.gz Csak nekem van jogom mindenhez, ugyanaz mintchmod u+rwx,g-rwx,o-rwx <fájlnév>
Fájlok esetében a végrehajtási jognak csak a futtatható fájloknál van jelentőségük (bináris állományok, scriptek).
Könyvtárak esetén az olvasási jog azt jelenti, hogy elolvashatja a fájlok neveit az adott könyvtárban, az írási jog jelenti, hogy a könyvtárban állományt, könyvtárat hozhatunk létre, míg a futtatási jog megengedi a belépést a könyvtárba.
Amikor egy fájlt létrehozunk, akkor az a jogosultságoknak egy alapértelmezett csoportjával fog rendelkezni. Pl.: Létrehozunk egy üres fájlt:
#touch akarmi
#ls –la akarmi
rw-r--r—
A létrehozáson kívül, hogy bármit is tettünk volna mint tulajdonosok, alapértelmezés szerint írási és olvasási joggal, a csoportba és a nem csoportba tartozók pedig csak olvasási joggal rendelkeznek. Ennek az az oka, hogy az operációs rendszer a fájl létrehozásakor a 022 maszkot alkalmazza. Egy adott állomány létrehozásakor alapértelmezésben senki sem kap futtatási jogot.
Az alapértelmezett maszk lekérdezése:
#umask
-> 022
#umask –S
->u=rwx g=rx o=rx
A maszk megváltoztatása:
#umask 420
A beállításból adódik, hogy egy állomány létrehozásakor kap-e futtatási jogot.
Sok esetben a Linux állományok attribútumaival akkor találjuk magunkat szembe, ha rendszerünket valaki feltörte. Ilyenkor feltűnő lehet, hogy ha például frissíteni akarunk egy csomagot ami megváltozott, azt a rendszer nem engedi, és eltávolítani sem tudjuk annak ellenére, hogy root-ként vagyunk bejelentkezve. Ezeket a fájlokat megváltoztathatatlan (immutable) fájloknak nevezzük, mivel sem mozgatni sem törölni, de még átnevezni sem lehet. Egy állomány attribútumainak megjelenítése:
#lsattr <állomány név>
-------- állomány neve megjegyzés
A parancs az adott fájl tulajdonságait, attribútumait jeleníti meg. Normális, alapértelmezett esetben, egyetlen egy tulajdonság bit sincs beállítva. A – jelek azoknak a tulajdonságoknak a helyét jelzik, amelyek a chattr paranccsal megváltoztatható.
chattr <+|- tulajdonság> <állomány neve>
Megadható attribútumok:
a: Kizárólag a root adhatja meg, az adott fájlhoz csak hozzáfűzni lehet, így nem felülírható és nem frissül a módosítás időpontja. (egész fájlrendszerre is megadható)
i: Ez a tulajdonság teszi megváltoztathatatlanná az állományt. (csak root-ként)
c: Ha az állomány ritkán használt és nagyméretű, akkor érdemes használni. A rendszer tömörített formában tárolja. (Automatikusan tömörít, kibont használatkor.)
d: Az állományról nem készül biztonsági másolat (dd).
S: Ezzel a bittel megjelölt állomány, ha azon bármilyen változás történik, azonnal mentésre kerül.
u: Törlés esetén a fájl fájlrendszertől függően azonnal visszaállítható (kivétel például az XFS).
S: Titkos anyagoknál van értelme. Fizikailag is törli az állományt a törlésnél, nem csak a bejegyzés tűnik el. (sima törlésnél csak a bejegyzést törli az inode-táblából és a kapcsolódó katalógusokból és szabad területként jelöli meg amit az állomány addig foglalt a partíción)
Setuid / Setgid
A korábbi beállításokból ismert r w x jogosultsági biteken kívül létezik még egy úgynevezett „s” bithármas is, melyet tulajdonságaiból adódóan setuid vagy setgid néven is említ az irodalom. Az „s” bit szükségessége: Az egyes programok működése közben szükség lehet rá, hogy úgy tűnjön számára, mintha más felhasználóként jelentkeztünk be a rendszerbe. Előfordulhat, hogy egy programot úgy szeretnénk futtatni, mintha rendszergazdák lennénk. Ez lehet valamilyen program, amit a root birtokol, de bizonyos okokból más felhasználóknak is futtathatóvá kívánják tenni. Lehet olyan megoldás is, hogy egy adott felhasználói program működéséhez olyan fájlok írása és olvásása is szükséges, melyeket a root birtokol. A setuid bit mely futtathatósági bit, az egyik változat. Ha pl. az „amator_ssb „ nevű programot bárki számára futtathatóvá akarjuk tenni, viszont ez rendszergazdai tulajdonságokkal rendelkezik, a következő megoldásokat választhatjuk:
chmod u+s amator_ssb
A setuid bit összevonható más jogosultságokkal. Minthogy az rwx helyettesíthető 4 2 1 számokkal, a setuid 4-es a setgid 2-es számmal helyettesíthető.
Megj.: A setuid és a setgid bitek nem használhatók parancsállományokra (shell vagy más néven bash scriptekre, biztonsági okokból).
chmod u=rwxs g=rx o= <fájlnév>
chmod 4750 <fájlnév>
Sticky bit (tapadós, Unix alatt más szerepet tölt be, innen kapta a nevét is: Némely Unix-szerű (vagy Unix) rendszernél (pl: NetBSD) sticky bit beállítása eseten a program egy része a memóriában marad, így biztosítva a gyorsabb elindulást) beállítása esetén csak is kizárólag a tulajdonos vagy a root felhasználó törölheti / módosíthatja az adott állományt. Chmoddal az oktális szám elején egy 1-essel adhatjuk meg:chmod 1777 <fajl>
Megjegyzés: A megadott kapcsolók/attribútumok egy része fájlrendszerenként másképpen viselkedhet. A parancsoknak disztribúciófüggetlenül minden Linux rendszerben ugyanaz a hatásuk.
Köszönet Babokanak a korrekciókért, tesztekért és az őszinte véleményéért.
- A hozzászóláshoz regisztráció és belépés szükséges

Hozzászólások
jogosultságok
Már próbálkoztam az s-bit beállításával az init parancsra régebben, hogy ne kelljen állandóan root-ként bejelentkeznem ahhoz, hogy kikapcsoljam a gépet, de a ha jól értem a cikket, akkor nem lehet megoldani.
Valami más megoldás nincs erre?
Desktopnak használom a rendszert és bosszantó, hogy kikapcsolás előtt állandóan szórakozni kell ezzel.
Én a gombot szoktam
Én a gombot szoktam nyomogatni, ha véletlen havonta egyszer kikapcsolom a gépet...
BaBo
Ez egy nedves kor
Nappal vér folyik, éjjel bor
Hobo Blues Band - Vadászat
.oOOo.oOOo.oOOo.oOOo.oOOo.oOOo.
2.6.19.2-grsec @ Slackware 11.0
Egyszerűen kilövöd a "power" gombbal?
Nem árt az a rendszernek?
Neeeem 8)
Neeeem 8)
Ha megnyomom a gombot, akkor rendesen init(0) -al kikapcsol a gép.
BaBo
Ez egy nedves kor
Nappal vér folyik, éjjel bor
Hobo Blues Band - Vadászat
.oOOo.oOOo.oOOo.oOOo.oOOo.oOOo.
2.6.19.2-grsec @ Slackware 11.0
Jól hangzik!
Gondolom, akkor olyasmi mint xp alatt.
Hol lehet beállítani? Én hiába nyomogatom...
RE:kikapcsolás
Szevasztok
Én kicsit más megoldást alkalmazok, bár kétségtelen, Babo megoldása egyszerűbb.
Az /sbin/shutdown parancsot átadod a sudo -nak.
visudo -val tegyél egy ilyen bejegyzést a /etc/sudoers fájlba:
forresty ALL = NOPASSWD: /sbin/shutdown
Ezután, vagy csinálsz egy aliast, vagy készítesz egy kis scriptet, pl így:
#!/bin/sh
# leallitas
sudo shutdown -h now
Elmented mondjuk leall néven, beteszed pl. a /usr/bin -be, oszt ha kiadod a leall parancsot, akkó leáll, rendesen.
Szevasztok
Linuxbazár
Slackware 11.0 kernel 2.6.18.3
Fluxbox 1.0rc2
ACPI BUTTON
Szia
Ezt az ACPI BUTTON intézi a kernelból. Ha beleforgatod ekkor nálad is működni fog.
BaBo
Ez egy nedves kor
Nappal vér folyik, éjjel bor
Hobo Blues Band - Vadászat
.oOOo.oOOo.oOOo.oOOo.oOOo.oOOo.
2.6.19.2-grsec @ Slackware 11.0
Köszi a válaszokat!
Köszi a válaszokat!
ACL
Vannak még az ACL-ek (Access Control List), amikkel finoman lehet szabályozni a hozzéféréseket, öröklődéseket különösen windows környezetben. Ezeket használja valamelyikőtök a minennapi életben? Akár más linux verzió alatt? Azt tudom, hogy nem minden alkalmazás kompatibilis vele, vannak amelyek felülírják a jogokat, és csak a star archiver tud korrekt backupot készíteni róla.
De ezt olvastam még a 8.2-es SuSE linux kiadásakor, nem hiszem hogy ne mozdult volna a dolog valamilyen irányba...