Linux alatt a fájlengedélyek, az attribútumok és a tulajdonjog szabályozzák a rendszer által feldolgozott hozzáférési szintet és a felhasználók fájljait. Ez biztosítja, hogy csak az engedélyezett felhasználók és folyamatok férhetnek hozzá meghatározott fájlokhoz és könyvtárakhoz.
Linux fájlengedélyek
Az alapvető Linux-engedélyezési modell úgy működik, hogy minden rendszerfájlt társít egy tulajdonoshoz és egy csoporthoz, és három különböző felhasználói osztályhoz rendel hozzáférési jogosultságokat:
- A fájl tulajdonosa.
- A csoport tagjai.
- Mások (mindenki más).
A fájl tulajdonjoga a chown
és chgrp
parancsokat.
Három fájlengedélytípus vonatkozik a felhasználók minden osztályára:
- Az olvasási engedély.
- Az írási engedély.
- Az engedély végrehajtása.
Ez a koncepció lehetővé teszi annak szabályozását, hogy mely felhasználók olvashassák el a fájlt, írhassanak rá vagy hajtsák végre a fájlt.
A fájlengedélyek megtekintéséhez használja a ls
parancs:
ls -l fájlnév
-rw-r - r-- 12 linuxizálja a felhasználókat 12.0K április 28. 10:10 fájlnév | [-] [-] [-] - [------] [---] | | | | | | | | | | | | | + -----------> 7. Csoport | | | | | + -------------------> 6. Tulajdonos | | | | + --------------------------> 5. Alternatív hozzáférési módszer | | | + ----------------------------> 4. Egyéb Engedélyek | + -------------------------------> 3. Csoportengedélyek | + ----------------------------------> 2. Tulajdonos engedélyei + ------------------------------------> 1. Fájltípus
Az első karakter a fájltípust jelöli. Ez lehet rendes fájl (-
), Könyvtár (d
), egy szimbolikus link (l
), vagy más speciális fájltípusok. A következő kilenc karakter a fájlengedélyeket jelenti, három három-három karakterből álló hármas. Az első hármas a tulajdonos, a második a csoport jogosultságait, az utolsó hármas pedig mindenki más jogosultságait mutatja.
A fenti példában (rw-r - r--
) azt jelenti, hogy a fájl tulajdonosának olvasási és írási engedélyei vannak (rw-
), a csoport és mások csak olvasási engedéllyel rendelkeznek (r--
).
A fájlengedélyek a fájltípustól függően eltérő jelentéssel bírnak.
A három engedélyhármas mindegyike a következő karakterekből építhető fel, és különböző hatásokkal bír, attól függően, hogy fájlhoz vagy könyvtárhoz vannak állítva:
Az engedélyek hatása a fájlokra
Engedély | karakter | Jelentése a fájlban |
---|---|---|
Olvas | - | A fájl nem olvasható. A fájl tartalma nem tekinthető meg. |
r | A fájl olvasható. | |
Ír | - | A fájlt nem lehet megváltoztatni vagy módosítani. |
w | A fájl megváltoztatható vagy módosítható. | |
Végrehajt | - | A fájl nem hajtható végre. |
x | A fájl végrehajtható. | |
s | Ha megtalálják a felhasználó hármas, ez állítja be a setuid bit. Ha megtalálják a csoport hármas, ez állítja be a setgid bit. Ez azt is jelenti x zászló van beállítva.Amikor az setuid vagy setgid a zászlók egy futtatható fájlra vannak beállítva, a fájl a fájl tulajdonosának és / vagy csoportjogosultságaival kerül végrehajtásra. | |
S | Ugyanaz, mint a s , de a x nincs beállítva. Ezt a zászlót ritkán használják fájlokon. | |
t | Ha megtalálják a mások hármas, ez állítja be a ragadós bit.Ez azt is jelenti x zászló van beállítva. Ez a zászló haszontalan a fájlokban. | |
T | Ugyanaz, mint a, t de a x nincs beállítva. Ez a zászló haszontalan a fájlokban. |
Az engedélyek hatása a könyvtárakra (mappákra)
A könyvtárak speciális fájltípusok, amelyek más fájlokat és könyvtárakat is tartalmazhatnak.
Engedély | karakter | Jelentés a Directory-on |
---|---|---|
Olvas | - | A könyvtár tartalma nem jeleníthető meg. |
r | A könyvtár tartalma megjeleníthető. (e.g., A fájlokat a könyvtárba sorolhatja a ls .) | |
Ír | - | A könyvtár tartalma nem módosítható. |
w | A könyvtár tartalma megváltoztatható. (e.g., Létrehozhat új fájlokat, fájlokat törölhet ... stb.) | |
Végrehajt | - | A könyvtár nem módosítható. |
x | A könyvtárban lehet navigálni a CD . | |
s | Ha megtalálják a felhasználó hármas, ez állítja be a setuid bit. Ha megtalálják a csoport triplet állítja be a setgid bit. Ez azt is jelenti x zászló van beállítva. Amikor az setgid a flag egy könyvtárban van beállítva, a benne létrehozott új fájlok a fájlt létrehozó felhasználó elsődleges csoport azonosítója helyett a könyvtárcsoport azonosítót (GID) öröklik.setuid nincs hatása a könyvtárakra. | |
S | Ugyanaz, mint a s , de a x nincs beállítva. Ez a zászló haszontalan a könyvtárakban. | |
t | Ha megtalálják a mások hármas, ez állítja be a ragadós bit.Ez azt is jelenti x zászló van beállítva. Ha a ragadós bit be van állítva egy könyvtárban, csak a fájl tulajdonosa, a könyvtár tulajdonosa vagy az adminisztrációs felhasználó törölheti vagy átnevezheti a fájlokat a könyvtárban. | |
T | Ugyanaz, mint a t , de a x nincs beállítva. Ez a zászló haszontalan a könyvtárakban. |
Fájlengedélyek módosítása #
A fájl engedélyei a chmod
parancs. Csak a root, a fájltulajdonos vagy a sudo jogosultsággal rendelkező felhasználó módosíthatja a fájl engedélyeit. Legyen különösen óvatos a használat során chmod
, különösen az engedélyek rekurzív megváltoztatásakor. A parancs elfogadhat argumentumként egy vagy több, szóközzel elválasztott fájlt és / vagy könyvtárat.
Az engedélyek megadhatók szimbolikus módban, numerikus módban vagy referenciafájlban.
Szimbolikus (szöveges) módszer #
A szintaxisa a chmod
A szimbolikus mód használatakor a parancs formátuma a következő:
chmod [OPCIÓK] [ugoa…] [- + =] perms… [,…] FÁJL ..
Az első zászlókészlet ([ugoa…]
), a felhasználók jelöli, meghatározza azokat a felhasználói osztályokat, amelyeknél a fájl engedélyei megváltoznak.
u
- A fájl tulajdonosa.g
- A csoport tagjai.o
- Az összes többi felhasználó.a
- Minden felhasználó, azonos augo
.
Ha a felhasználói zászló elmarad, akkor az alapértelmezett értéke a
.
A második zászlókészlet ([- + =]
), a műveletjelzők meghatározzák, hogy az engedélyeket el kell-e távolítani, hozzáadni vagy beállítani:
-
- Eltávolítja a megadott engedélyeket.+
- Megadott engedélyeket ad hozzá.=
- Megváltoztatja a jelenlegi engedélyeket a megadott engedélyekre. Ha a. Után nem adnak engedélyeket=
szimbólummal, a megadott felhasználói osztály összes engedélye eltávolításra kerül.
Az engedélyek (perms…
) kifejezetten nulla, vagy a következő betűk egy vagy több használatával vannak beállítva: r
, w
, x
, x
, s
, és t
. Használjon egyetlen betűt a készletből u
, g
, és o
amikor engedélyeket másol egyik felhasználóból a másikba.
Több felhasználói osztály engedélyeinek beállításakor ([,…]
), vesszővel (szóköz nélkül) válassza el a szimbolikus módokat.
Íme néhány példa a chmod
parancs szimbolikus módban:
Adjon engedélyt a csoport tagjainak a fájl végrehajtására, de ne olvassák és írhassák rá:
chmod g = x fájlnév
Távolítsa el az írási engedélyt minden felhasználó számára:
chmod a-w fájlnév
Távolítsa el a végrehajtási engedélyt más felhasználók számára:
chmod -R o-x dirname
Távolítsa el az olvasási, írási és végrehajtási engedélyt a fájl tulajdonosán kívüli összes felhasználó számára:
chmod og-rwx fájlnév
Ugyanezt a következő űrlap segítségével is el lehet érni:
chmod og = fájlnév
Adjon olvasási, írási és végrehajtási engedélyt a fájl tulajdonosának, olvasási jogosultságokat a fájl csoportjának, és ne engedélyezze az összes többi felhasználót:
chmod u = rwx, g = r, o = fájlnév
Numerikus módszer #
A szintaxisa a chmod
A szimbolikus mód használatakor a parancs formátuma a következő:
chmod [OPCIÓK] SZÁMFÁJL ..
A numerikus mód használatakor egyszerre állíthatja be a jogosultságokat mind a három felhasználói osztályra (tulajdonos, csoport és az összes többi).
Az engedély száma 3 vagy 4 jegyű lehet. 3 számjegyből álló szám esetén az első számjegy a fájl tulajdonosának, a második a fájl csoportjának, az utolsó pedig az összes többi felhasználó engedélyét jelenti.
Minden írási, olvasási és végrehajtási engedély a következő értékkel rendelkezik:
r
(olvasni) = 4w
(ír) = 2x
(végrehajtani) = 1- nincs engedély = 0
Egy adott felhasználói osztály engedélyszámát az adott csoportra vonatkozó engedélyek értékeinek összege képviseli.
A fájl engedélyeinek numerikus módban történő megismeréséhez egyszerűen számolja ki az összes felhasználó osztályának összesítését. Például, ha olvasási, írási és végrehajtási engedélyt ad a fájl tulajdonosának, olvasási és végrehajtási jogosultságokat ad a fájl csoportjának, és csak az összes többi felhasználónak engedélyezi az olvasást, akkor a következőket tegye:
- Tulajdonos: rwx = 4 + 2 + 1 = 7
- Csoport: r-x = 4 + 0 + 1 = 5
- Egyéb: r-x = 4 + 0 + 0 = 4
A fenti módszer alkalmazásával elérjük a számot 754
, amely a kívánt engedélyeket jelenti.
A setuid
, setgid
, és ragacsos darab
zászlók, négy számjegyű számot használjon.
A négyjegyű szám használata esetén az első számjegy jelentése a következő:
- setuid = 4
- setgid = 2
- ragadós = 1
- nincs változás = 0
A következő három számjegy jelentése megegyezik a háromjegyű szám használatával.
Ha az első számjegy 0, akkor elhagyható, és az üzemmód 3 számjeggyel ábrázolható. A numerikus mód 0755
ugyanaz mint 755
.
A numerikus mód kiszámításához használhat másik módszert is (bináris módszer), de ez egy kicsit bonyolultabb. A legtöbb felhasználó számára elegendő tudni, hogyan kell kiszámítani a numerikus módot a 4, 2 és 1 használatával.
A fájl engedélyeit a numerikus jelöléssel ellenőrizheti a statisztika
parancs:
stat -c "% a" fájlnév
Íme néhány példa a chmod
parancs numerikus módban:
Adjon a fájl tulajdonosának olvasási és írási engedélyeket, és csak olvasási engedélyeket adjon a csoporttagoknak és az összes többi felhasználónak:
chmod 644 dirname
Adja meg a fájl tulajdonosának olvasási, írási és végrehajtási engedélyeket, olvasási és végrehajtási jogosultságokat a csoporttagoknak és minden más felhasználónak:
chmod 750 dirname
Adjon olvasási, írási és végrehajtási engedélyeket, valamint ragacsos bitet egy adott könyvtárhoz:
chmod 1777 dirname
Rekurzívan állítsa be az olvasási, írási és végrehajtási engedélyeket a fájl tulajdonosának, és nem engedélyeket az adott könyvtár összes többi felhasználójának:
chmod -R 700 dirname
Következtetés
Linux alatt a fájlokhoz való hozzáférést fájlengedélyek, attribútumok és tulajdonjog korlátozza. A fájl engedélyeinek módosításához használja a chmod
parancs.
Ha bármilyen kérdése vagy visszajelzése van, nyugodtan írjon megjegyzést.