Engedélyek Linuxban (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Sziasztok. Ez a RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 és EX300 című könyv cikkének fordítása.

Nyom: Remélem, hogy a cikk nem csak a kezdőknek lesz hasznos, hanem a tapasztaltabb rendszergazdáknak is segít tudásuk korszerűsítésében.

Tehát menjünk.

Engedélyek Linuxban (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

A fájlok eléréséhez Linux alatt engedélyeket kell használni. Ezek az engedélyek három objektumhoz vannak hozzárendelve: a fájltulajdonoshoz, a csoporttulajdonoshoz és egy másik objektumhoz (vagyis mindenki máshoz). Ebből a cikkből megtudhatja, hogyan kell engedélyeket alkalmazni.

Ez a cikk az alapfogalmak áttekintésével kezdődik, majd a Speciális engedélyek és hozzáférés-vezérlési listák (ACL) tárgyalása következik. A cikk végén foglalkozunk az alapértelmezett engedélyek umask segítségével történő beállításával, valamint a kiterjesztett felhasználói attribútumok kezelésével.

Fájltulajdon-kezelés

Mielőtt az engedélyekről beszélne, tisztában kell lennie a fájl- és könyvtártulajdonos szerepével. A fájlok és könyvtárak tulajdonlása létfontosságú az engedélyek kezeléséhez. Ebben a részben először megtudhatja, hogyan láthatja a tulajdonost. Ezután megtudhatja, hogyan módosíthatja a fájlok és könyvtárak csoporttulajdonosát és felhasználóját.

Fájl vagy könyvtár tulajdonosának megjelenítése

Linuxban minden fájlnak és könyvtárnak két tulajdonosa van: egy felhasználó és egy csoport tulajdonosa.

Ezek a tulajdonosok a fájl vagy könyvtár létrehozásakor kerülnek beállításra. A fájlt létrehozó felhasználó lesz a fájl tulajdonosa, és az elsődleges csoport, amelyhez ugyanaz a felhasználó tartozik, szintén a fájl tulajdonosává válik. Annak megállapításához, hogy felhasználóként jogosult-e hozzáférni egy fájlhoz vagy könyvtárhoz, a shell ellenőrzi a tulajdonjogot.

Ez a következő sorrendben történik:

  1. A shell ellenőrzi, hogy Ön-e az elérni kívánt fájl tulajdonosa. Ha Ön a tulajdonos, engedélyeket kap, és a shell leállítja az ellenőrzést.
  2. Ha nem Ön a fájl tulajdonosa, a shell ellenőrzi, hogy Ön egy olyan csoport tagja-e, amely jogosultsággal rendelkezik a fájlhoz. Ha tagja ennek a csoportnak, akkor a csoport által beállított engedélyekkel fog hozzáférni a fájlhoz, és a shell leállítja az ellenőrzést.
  3. Ha Ön nem felhasználó és nem tulajdonosa egy csoportnak, akkor más felhasználók jogait is megkapja (Other).

Az aktuális tulajdonos-hozzárendelések megtekintéséhez használja a parancsot ls-l. Ez a parancs megmutatja a csoport felhasználóját és tulajdonosát. Alább láthatja a /home könyvtárban található könyvtárak tulajdonosi beállításait.

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

A paranccsal ls megjelenítheti az adott könyvtárban lévő fájlok tulajdonosát. Néha hasznos lehet a rendszer összes fájljának listája, amelynek tulajdonosa egy adott felhasználó vagy csoport. Ehhez használhatja talál. Érv felhasználó keresése használható erre a célra. Például a következő parancs felsorolja az összes fájlt, amely a linda felhasználó tulajdonában van:

find / -user linda

Ön is használhatja talál olyan fájlok kereséséhez, amelyek tulajdonosa egy bizonyos csoport.

Például a következő parancs megkeresi a csoporthoz tartozó összes fájlt Felhasználók:

find / -group users

Tulajdonosváltás

A megfelelő engedélyek alkalmazásához először a tulajdonjogot kell figyelembe venni. Erre van egy parancs chown. Ennek a parancsnak a szintaxisa könnyen érthető:

chown кто что

Például a következő parancs megváltoztatja a /home/account könyvtár tulajdonosát a linda felhasználóra:

chown linda /home/account

Csapat chown számos lehetőség közül választhat, amelyek közül az egyik különösen hasznos: -R. Lehet találgatni, mit csinál, mert ez az opció sok más parancshoz is elérhető. Ez lehetővé teszi a tulajdonos rekurzív beállítását, ami lehetővé teszi az aktuális könyvtár és az alábbiak tulajdonosának beállítását. A következő parancs megváltoztatja a /home könyvtár és az alatta lévő összes tulajdonjogát a linda felhasználóra:

A tulajdonosok most így néznek ki:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

Csináljuk:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

Most a lisa felhasználó lett a fiókkönyvtár tulajdonosa:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

Csoport tulajdonosának módosítása

Egy csoport tulajdonjogának megváltoztatásának két módja van. Ezt a segítségével teheti meg chown, de van egy speciális parancs chgrpaz teszi a dolgát. Ha használni szeretné a parancsot chown, használja . vagy : a csoport neve előtt.

A következő parancs megváltoztatja a /home/account csoport bármely tulajdonosát a fiókcsoportra:

chown .account /home/account

Te tudod használni chown egy felhasználó és/vagy csoport tulajdonosának többféle módon történő megváltoztatásához. Íme néhány példa:

  • chown lisa myfile1 beállítja a lisa felhasználót a myfile1 tulajdonosaként.
  • chown lisa.sales myfile beállítja a lisa felhasználót a myfile fájl tulajdonosaként, és az értékesítési csoportot is beállítja ugyanazon fájl tulajdonosaként.
  • chown lisa:sales myfile ugyanaz, mint az előző parancs.
  • chown .sales myfile beállítja az értékesítési csoportot a myfile tulajdonosaként anélkül, hogy megváltoztatná a felhasználó tulajdonosát.
  • chown :sales myfile ugyanaz, mint az előző parancs.

Használhatja a parancsot chgrpa csoport tulajdonosának megváltoztatásához. Vegye figyelembe a következő példát, ahol használhatja chgrp állítsa be a fiókkönyvtár tulajdonosát az értékesítési csoportba:

chgrp .sales /home/account

Mint chown, használhatja a lehetőséget -R с chgrp, valamint rekurzív módon módosíthatja a csoport tulajdonosát.

Az alapértelmezett tulajdonos megértése

Talán észrevette, hogy amikor egy felhasználó létrehoz egy fájlt, az alapértelmezett tulajdonjog kerül alkalmazásra.
A fájlt létrehozó felhasználó automatikusan a fájl tulajdonosává válik, és a felhasználó elsődleges csoportja automatikusan a fájl tulajdonosává válik. Általában ez az a csoport, amely az /etc/passwd fájlban a felhasználó elsődleges csoportjaként szerepel. Ha azonban a felhasználó egynél több csoport tagja, a felhasználó módosíthatja a hatályos elsődleges csoportot.

Az aktuális elsődleges csoport megjelenítéséhez a felhasználó használhatja a parancsot csoportok:

[root@server1 ~]# groups lisa
lisa : lisa account sales

Ha a jelenlegi linda felhasználó meg akarja változtatni a hatályos elsődleges csoportot, akkor a parancsot fogja használni newgrpmajd annak a csoportnak a neve, amelyet új, hatékony elsődleges csoportként szeretne beállítani. A parancs használata után newgrp az elsődleges csoport addig lesz aktív, amíg a felhasználó be nem ad egy parancsot kijárat vagy nem jelentkezik ki.

Az alábbiakban bemutatjuk, hogyan használja a linda felhasználó ezt a parancsot, az értékesítés elsődleges csoportjával:

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

A hatályos elsődleges csoport módosítása után a felhasználó által létrehozott összes új fájl a csoport tulajdonosa lesz. Az eredeti elsődleges csoportbeállításhoz való visszatéréshez használja a kijárat.

A parancs használatához newgrp, a felhasználónak annak a csoportnak a tagjának kell lennie, amelyet elsődleges csoportként szeretne használni. Ezenkívül a paranccsal csoporthoz tartozó jelszó is használható gpasswd. Ha a felhasználó használja a parancsot newgrpde nem tagja a célcsoportnak, a shell a csoport jelszavát kéri. A helyes csoportjelszó megadása után egy új, hatékony elsődleges csoport jön létre.

Alapvető jogok kezelése

A Linux engedélyezési rendszert az 1970-es években találták fel. Mivel azokban az években a számítástechnikai igények korlátozottak voltak, az alapvető engedélyezési rendszer meglehetősen korlátozott volt. Ez az engedélyrendszer három engedélyt használ, amelyek a fájlokra és könyvtárakra alkalmazhatók. Ebben a részben megtudhatja, hogyan kell ezeket az engedélyeket használni és módosítani.

Az olvasási, írási és végrehajtási engedélyek megértése

Három alapvető engedély teszi lehetővé a fájlok olvasását, írását és végrehajtását. Ezeknek az engedélyeknek a hatása eltérő, ha fájlokra vagy könyvtárakra alkalmazzák. Egy fájl esetében az olvasási engedély jogot ad a fájl megnyitásához olvasásra. Ezért elolvashatja a tartalmát, de ez azt jelenti, hogy a számítógépe megnyithatja a fájlt, hogy csináljon vele valamit.

A könyvtárhoz hozzáférést igénylő programfájlnak például olvasási hozzáféréssel kell rendelkeznie ahhoz a könyvtárhoz. Ebből következik, hogy az olvasási engedély a legalapvetőbb engedély, amelyre szüksége van a fájlokkal való munkához.

Ha egy könyvtárra alkalmazza, az olvasás lehetővé teszi az adott könyvtár tartalmának megjelenítését. Tudnia kell, hogy ez az engedély nem teszi lehetővé a fájlok olvasását a könyvtárban. A Linux engedélyrendszere nem ismeri az öröklődést, és a fájl olvasásának egyetlen módja az adott fájl olvasási engedélyeinek használata.

Amint azt valószínűleg sejti, az írási engedély, ha egy fájlra vonatkozik, lehetővé teszi az írást a fájlba. Más szóval, lehetővé teszi a meglévő fájlok tartalmának módosítását. Azonban nem teszi lehetővé új fájlok létrehozását vagy törlését, illetve a fájlengedélyek módosítását. Ehhez írási engedélyt kell adni annak a könyvtárnak, ahol a fájlt létrehozni kívánja. A könyvtárakban ez az engedély új alkönyvtárak létrehozását és törlését is lehetővé teszi.

A fájl végrehajtásához végrehajtási engedélyre van szüksége. Alapértelmezés szerint soha nem lesz telepítve, ami szinte teljesen immunissá teszi a Linuxot a vírusokkal szemben. Csak olyan személy kérhet végrehajtási engedélyt, aki írási jogosultsággal rendelkezik a könyvtárban.

Az alábbiakban összefoglaljuk az alapvető engedélyek használatát:

Engedélyek Linuxban (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

A chmod használatával

A parancs az engedélyek kezelésére szolgál. chmod... Használata chmod engedélyeket állíthat be a felhasználó (felhasználó), csoportok (csoport) és mások (egyéb) számára. Ezt a parancsot két módban használhatja: relatív módban és abszolút módban. Abszolút módban három számjegyet használnak az alapvető engedélyek beállítására.

Engedélyek Linuxban (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Az engedélyek beállításakor számítsa ki a szükséges értéket. Ha be szeretné állítani az olvasást/írást/végrehajtást a felhasználó számára, az olvasást/végrehajtást a csoport számára, és az olvasást/végrehajtást mások számára a /somefile fájlban, akkor használja a következő parancsot chmod:

chmod 755 /somefile

Amikor használod chmod így az összes jelenlegi engedélyt az Ön által beállított engedélyek váltják fel.

Ha módosítani szeretné az engedélyeket az aktuális engedélyekhez képest, használhatja chmod relatív módban. Használata chmod relatív módban három jelzővel dolgozik, hogy jelezze, mit szeretne tenni:

  1. Először meg kell adnia, hogy kinek szeretné módosítani az engedélyeket. Ehhez választhat a felhasználó (u), csoport (g) és mások (o).
  2. Ezután egy utasítással adhat hozzá vagy távolíthat el engedélyeket az aktuális módból, vagy teljesen beállíthatja azokat.
  3. A végén használod r, w и xa beállítani kívánt engedélyek megadásához.

Ha relatív módban módosítja az engedélyeket, kihagyhatja a "hoz" részt, hogy hozzáadjon vagy eltávolítson engedélyt az összes objektumhoz. Például ez a parancs végrehajtási engedélyt ad minden felhasználó számára:

chmod +x somefile

Ha relatív módban dolgozik, akkor összetettebb parancsokat is használhat. Ez a parancs például írási jogosultságot ad egy csoporthoz, és eltávolítja az olvasási engedélyt másoktól:

chmod g+w,o-r somefile

Ha a chmod -R o+rx /data végrehajtási engedélyt állít be az összes könyvtárhoz, valamint a /data könyvtárban lévő fájlokhoz. Ha csak a könyvtárakhoz szeretné beállítani a végrehajtási engedélyt, a fájlokhoz nem, használja a chmod -R o+ rX /adat.

A nagybetűs X biztosítja, hogy a fájlok csak akkor kapjanak végrehajtási engedélyt, ha a fájl bizonyos objektumokhoz már beállított végrehajtási engedélyt. Ezáltal az X intelligensebb módja a végrehajtási engedélyek kezelésének; ezzel elkerülhető az engedély megadása olyan fájlokon, ahol nincs rá szükség.

Kiterjesztett jogok

Az imént olvasott alapvető engedélyeken kívül a Linux speciális engedélyekkel is rendelkezik. Ezek nem az Ön által alapértelmezés szerint beállított engedélyek, de néha hasznos kiegészítést jelentenek. Ebben a részben megtudhatja, mik ezek, és hogyan kell beállítani őket.

A SUID, GUID és Sticky Bit kiterjesztett engedélyek megértése

Három speciális engedély létezik. Ezek közül az első a felhasználói azonosító (SUID) beállításának engedélye. Bizonyos speciális esetekben ezt az engedélyt futtatható fájlokra is alkalmazhatja. Alapértelmezés szerint a végrehajtható fájlt futtató felhasználó saját engedélyeivel futtatja a fájlt.

A hétköznapi felhasználók számára ez általában azt jelenti, hogy a program használata korlátozott. Bizonyos esetekben azonban a felhasználónak speciális engedélyekre van szüksége, csak egy adott feladat elvégzéséhez.

Vegyünk például egy olyan helyzetet, amikor a felhasználónak meg kell változtatnia a jelszavát. Ehhez a felhasználónak be kell írnia az új jelszavát az /etc/shadow fájlba. Ezt a fájlt azonban nem root felhasználók nem írhatják:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

A SUID engedély megoldást kínál erre a problémára. A /usr/bin/passwd segédprogram alapértelmezés szerint ezt az engedélyt használja. Ez azt jelenti, hogy a jelszó megváltoztatásakor a felhasználó átmenetileg root lesz, ami lehetővé teszi számára, hogy írjon az /etc/shadow fájlba. A SUID engedélyt a következővel láthatja: ls-l mint s olyan helyzetben, ahol általában elvárnád x egyéni engedélyekhez:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

A SUID engedély hasznosnak tűnhet (és bizonyos esetekben az is), ugyanakkor potenciálisan veszélyes is. Ha nem megfelelően alkalmazza, véletlenül root jogosultságokat adhat. Ezért csak a legnagyobb körültekintéssel ajánlom a használatát.

A legtöbb rendszergazdának soha nem kell használnia; csak néhány fájlban fogja látni, ahol az operációs rendszernek alapértelmezés szerint be kell állítania.

A második speciális engedély a csoportazonosító (SGID). Ennek az engedélynek két hatása van. Amikor egy végrehajtható fájlra alkalmazzák, a fájlt végrehajtó felhasználónak megadja a fájl csoporttulajdonosának engedélyeit. Tehát az SGID többé-kevésbé ugyanazt tudja csinálni, mint a SUID. Az SGID-t azonban gyakorlatilag nem használják erre a célra.

A SUID engedélyhez hasonlóan az SGID is alapértelmezett beállításként kerül alkalmazásra egyes rendszerfájlokra.

Ha egy könyvtárra alkalmazza, az SGID hasznos lehet, mert segítségével beállíthatja az alapértelmezett csoporttulajdonost az adott könyvtárban létrehozott fájlok és alkönyvtárak számára. Alapértelmezés szerint, amikor a felhasználó létrehoz egy fájlt, a tényleges elsődleges csoport a fájl csoporttulajdonosa lesz.

Ez nem mindig nagyon hasznos, különösen azért, mert a Red Hat/CentOS felhasználók elsődleges csoportja a felhasználóval azonos nevű csoportra van beállítva, és amelynek a felhasználó az egyetlen tagja. Így alapértelmezés szerint a felhasználó által létrehozott fájlok tömegesen lesznek megosztva.

Képzeljünk el egy olyan helyzetet, amikor linda és lori felhasználók a könyvelésben dolgoznak, és egy csoport tagjai fiók. Alapértelmezés szerint ezek a felhasználók egy privát csoport tagjai, amelynek ők az egyetlen tagja. Azonban mindkét felhasználó tagja a fiókcsoportnak, de másodlagos csoportparaméterként is.

Az alapértelmezett helyzet az, hogy amikor ezen felhasználók bármelyike ​​létrehoz egy fájlt, az elsődleges csoport lesz a tulajdonos. Ezért alapértelmezés szerint a linda nem fér hozzá a lori által létrehozott fájlokhoz, és fordítva. Ha azonban létrehoz egy megosztott csoportkönyvtárat (mondjuk a /groups/account), és győződjön meg arról, hogy az SGID engedélyt alkalmazza az adott könyvtárra, és hogy a csoportfiók a csoport tulajdonosaként van beállítva az adott könyvtárhoz, akkor az abban a könyvtárban létrehozott összes fájl és az összes alkönyvtárai közül alapértelmezés szerint a csoportfiókot is megkapja a csoport tulajdonosaként.

Emiatt az SGID engedély nagyon hasznos engedély nyilvános csoportkönyvtárak beállításához.

SGID engedély látható a kimenetben ls-l mint s azon a helyen, ahol általában engedélyt kapna egy csoport végrehajtására:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

A speciális engedélyek közül a harmadik a ragadós bit. Ez az engedély hasznos a fájlok véletlen törlés elleni védelmére olyan környezetben, ahol több felhasználó is rendelkezik írási hozzáféréssel ugyanabba a könyvtárba. Tapadó bit használata esetén a felhasználó csak akkor törölhet fájlt, ha a fájlt tartalmazó fájl vagy könyvtár felhasználói tulajdonosa. Emiatt ez az alapértelmezett engedély a /tmp könyvtárhoz, és hasznos lehet a nyilvános csoportkönyvtárak számára is.

A ragadós bit nélkül, ha a felhasználó létrehozhat fájlokat egy könyvtárban, akkor abból a könyvtárból is törölhet fájlokat. Nyilvános csoportos környezetben ez bosszantó lehet. Képzelje el a linda és lori felhasználókat, akik mindketten írási jogosultsággal rendelkeznek a /data/account könyvtárba, és ezeket a jogosultságokat a fiókcsoport tagjaiként kapják meg. Ezért a linda képes törölni a lori által létrehozott fájlokat és fordítva.

A ragadó bit alkalmazásakor a felhasználó csak akkor törölhet fájlokat, ha az alábbi feltételek valamelyike ​​teljesül:

  • A felhasználó a fájl tulajdonosa;
  • A felhasználó annak a könyvtárnak a tulajdonosa, ahol a fájl található.

Ha a ls-l, láthatod a ragadós bitet, mint t abban a helyzetben, ahol általában végrehajtási engedélyt látna mások számára:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

Kiterjesztett jogok alkalmazása

SUID, SGID és ragadós bit felviteléhez is használhatja chmod. A SUID numerikus értéke 4, az SGID numerikus értéke 2, a ragadós bité pedig 1.

Ha alkalmazni kívánja ezeket az engedélyeket, hozzá kell adnia egy négyjegyű argumentumot chmod, amelynek első számjegye speciális engedélyekre utal. A következő sor például SGID-engedélyt ad a könyvtárhoz, és beállítja az rwx-t a felhasználóhoz, az rx-et pedig a csoporthoz és egyebekhez:

chmod 2755 /somedir

Ez meglehetősen nem praktikus, ha látnia kell az aktuális engedélyeket, amelyek be vannak állítva a munka előtt chmod abszolút módban. (Fennáll a kockázata, hogy felülírja az engedélyeket, ha nem teszi meg.) Ezért azt javaslom, hogy relatív módban futtasson, ha alkalmaznia kell a speciális engedélyek valamelyikét:

  1. SUID használatra chmod u+s.
  2. SGID használatra chmod g+s.
  3. Ragadós bites használatra chmod +t, majd annak a fájlnak vagy könyvtárnak a neve, amelyhez engedélyeket kíván beállítani.

A táblázat összefoglalja mindazt, amit a speciális engedélyek kezeléséről tudnia kell.

Engedélyek Linuxban (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Példa különleges jogokkal való munkára

Ebben a példában speciális engedélyeket használ, hogy megkönnyítse a csoport tagjainak a fájlok megosztását a megosztott csoportkönyvtárban. Az ID bitet hozzárendeli a beállított csoportazonosítóhoz, valamint a ragadós bithez, és látja, hogy miután beállították, a rendszer hozzáadja azokat a funkciókat, amelyek megkönnyítik a csoporttagok együttműködését.

  1. Nyisson meg egy terminált, ahol Ön a linda felhasználó. A paranccsal létrehozhat egy felhasználót add hozzá linda, add meg a jelszót passwd Linda.
  2. A paranccsal hozza létre a /data könyvtárat a gyökérben és a /data/sales alkönyvtárat mkdir -p /data/sales. teljes cd /data/saleshogy lépjen az értékesítési címtárba. teljes érintse meg linda1 и érintse meg linda2hogy hozzon létre két üres fájlt a linda tulajdonában.
  3. Végrehajt su-lisa átváltani az aktuális felhasználót Lisa felhasználóra, aki szintén tagja az értékesítési csoportnak.
  4. Végrehajt cd /data/sales és abból a könyvtárból hajtsa végre ls-l. Két fájlt fog látni, amelyeket a linda felhasználó hozott létre, és amelyek a linda csoporthoz tartoznak. teljes rm -f linda*. Ezzel mindkét fájlt eltávolítja.
  5. Végrehajt touch lisa1 и touch lisa2két fájl létrehozásához, amelyek a lisa felhasználó tulajdonában vannak.
  6. Végrehajt su- hogy a jogosultságait root-ra emelje.
  7. Végrehajt chmod g+s,o+t /data/salesa csoportazonosító (GUID) bit, valamint a ragadós bit beállításához a megosztott csoportkönyvtárban.
  8. Végrehajt su-linda. Akkor csináld érintse meg linda3 и érintse meg linda4. Most látnia kell, hogy a két létrehozott fájl az értékesítési csoport tulajdona, amely a /data/sales könyvtár csoporttulajdonosa.
  9. Végrehajt rm -rf lisa*. A ragadós bit megakadályozza, hogy ezeket a fájlokat a Linda felhasználó nevében töröljék, mivel nem Ön ezeknek a fájloknak a tulajdonosa. Ne feledje, hogy ha a linda felhasználó a /data/sales könyvtár tulajdonosa, úgyis törölheti ezeket a fájlokat!

ACL-kezelés (setfacl, getfacl) Linuxban

Annak ellenére, hogy a fent tárgyalt kiterjesztett engedélyek hasznos funkciókat adnak hozzá a Linux engedélyek kezeléséhez, nem teszi lehetővé, hogy ugyanabban a fájlban egynél több felhasználónak vagy csoportnak adjon engedélyt.

A hozzáférés-vezérlési listák kínálják ezt a funkciót. Ezenkívül lehetővé teszik az adminisztrátorok számára, hogy összetett módon állítsák be az alapértelmezett engedélyeket, ahol a beállított engedélyek könyvtáronként változhatnak.

Az ACL-ek megértése

Bár az ACL alrendszer nagyszerű funkcionalitást ad a kiszolgálóhoz, van egy hátránya: nem minden segédprogram támogatja. Emiatt fájlok másolásakor vagy áthelyezésekor elveszítheti az ACL-beállításokat, és előfordulhat, hogy a biztonsági mentési szoftver nem készít biztonsági másolatot az ACL-beállításokról.

A tar segédprogram nem támogatja az ACL-eket. Annak érdekében, hogy az ACL-beállítások ne vesszenek el a biztonsági mentés létrehozásakor, használja a csillag kátrány helyett. csillag ugyanazokkal az opciókkal működik, mint a tar; csak támogatja az ACL beállításokat.

Az ACL-ekről biztonsági másolatot is készíthet a következővel getfacl, amely a setfacl paranccsal állítható vissza. Biztonsági másolat létrehozásához használja a getfacl -R /könyvtár > fájl.acls. A beállítások biztonsági másolatból történő visszaállításához használja a setfacl --restore=file.acl.

Egyes eszközök támogatásának hiánya nem jelenthet problémát. Az ACL-eket gyakran alkalmazzák könyvtárakra strukturális intézkedésként, nem pedig egyedi fájlokra.
Ezért nem sok lesz belőlük, de csak néhány, a fájlrendszer okos helyein alkalmazva. Ezért az eredeti ACL-ek visszaállítása viszonylag egyszerű, még akkor is, ha a biztonsági mentési szoftver nem támogatja őket.

A fájlrendszer előkészítése az ACL-ekhez

Mielőtt elkezdené az ACL-ekkel való munkát, előfordulhat, hogy fel kell készítenie a fájlrendszert az ACL-ek támogatására. Mivel a fájlrendszer metaadatait ki kell bővíteni, a fájlrendszer nem mindig támogatja az alapértelmezett ACL-eket. Ha a „művelet nem támogatott” üzenetet kap egy fájlrendszer ACL-einek beállításakor, előfordulhat, hogy a fájlrendszer nem támogatja az ACL-eket.

Ennek kijavításához hozzá kell adnia a lehetőséget acl tartó az /etc/fstab fájlban, így a fájlrendszer alapértelmezés szerint ACL-támogatással van csatlakoztatva.

Az ACL-beállítások módosítása és megtekintése a setfacl és getfacl segítségével

Az ACL beállításához szükség van a parancsra setfacl. Az aktuális ACL-beállítások megtekintéséhez szükséges getfacl. Csapat ls-l nem jelenít meg meglévő ACL-eket; csak egy + jelet mutat az engedélylista után, ami azt jelzi, hogy az ACL-ek a fájlra is vonatkoznak.

Az ACL-ek beállítása előtt mindig célszerű az aktuális ACL-beállításokat megjeleníteni getfacl. Az alábbi példában láthatja az aktuális engedélyeket, ahogyan a képen látható ls-l, valamint a képen látható módon getfacl. Ha alaposan megnézi, látni fogja, hogy a megjelenített információ pontosan ugyanaz.

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

A parancs végrehajtásának eredményeként getfacl Az alábbiakban láthatja, hogy az engedélyek három különböző objektumhoz jelennek meg: felhasználó, csoport és mások. Most adjunk hozzá egy ACL-t, amely olvasási és végrehajtási engedélyeket ad az értékesítési csoportnak is. parancsot erre setfacl -mg:sales:rx /dir. Ebben a csapatban -m azt jelzi, hogy az aktuális ACL-beállításokat módosítani kell. Azt követően g:sales:rx utasítja a parancsot, hogy állítsa be az olvasási-végrehajtási ACL (rx) a csoport számára (g) értékesítés. Alább láthatja, hogyan néz ki a parancs, valamint a getfacl parancs kimenete az aktuális ACL-beállítások módosítása után.

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

Most, hogy megértette, hogyan kell beállítani egy csoportos ACL-t, könnyen megértheti az ACL-eket a felhasználók és más felhasználók számára. Például a parancs setfacl -mu:linda:rwx /data engedélyeket ad a linda felhasználónak a /data könyvtárban anélkül, hogy tulajdonossá tenné, vagy megváltoztatná az aktuális tulajdonos hozzárendelését.

Csapat setfacl számos funkcióval és lehetőséggel rendelkezik. Az egyik lehetőség különösen fontos, a paraméter -R. Ha használja, akkor a beállítás beállítja az ACL-t az összes olyan fájlhoz és alkönyvtárhoz, amely jelenleg létezik abban a könyvtárban, ahol beállította az ACL-t. Javasoljuk, hogy mindig használja ezt a beállítást, amikor módosítja a meglévő könyvtárak ACL-eit.

Munka az alapértelmezett ACL-ekkel

Az ACL-ek használatának egyik előnye, hogy egy címtárban több felhasználónak vagy csoportnak adhat engedélyeket. Egy másik előny, hogy az alapértelmezett ACL-ekkel együtt engedélyezheti az öröklést.

Az alapértelmezett ACL beállításával meghatározhatja a könyvtárban létrehozott összes új elemhez beállított engedélyeket. Ügyeljen arra, hogy az alapértelmezett ACL nem módosítja a meglévő fájlok és alkönyvtárak engedélyeit. Ezek megváltoztatásához normál ACL-t is kell hozzáadni!

Ezt fontos tudni. Ha egy ACL-t szeretne használni több felhasználó vagy csoport konfigurálásához, hogy ugyanahhoz a címtárhoz férhessenek hozzá, akkor az ACL-t kétszer kell beállítani. Első használat setfacl -R -maz aktuális fájlok ACL-jének módosításához. Akkor használd setfacl-md:gondoskodni minden új elemről, amely szintén létrejön.

Az alapértelmezett ACL beállításához csak hozzá kell adnia a lehetőséget d opció után -m (a sorrend számít!). Szóval használd setfacl -md:g:sales:rx /dataha azt szeretné, hogy a csoportos értékesítés elolvassa és végrehajtsa a /data könyvtárban valaha létrehozott dolgokat.

Alapértelmezett ACL-ek használatakor hasznos lehet az ACL-ek beállítása mások számára is. Ennek általában nincs sok értelme, mert módosíthatja mások engedélyeit is chmod. Viszont amivel nem tudsz mit kezdeni chmod, meghatározza azokat a jogokat, amelyeket más felhasználóknak kell biztosítani minden új fájlhoz, amelyet valaha is létrehoznak. Ha meg akarja akadályozni, hogy mások engedélyt kapjanak a /data fájlban létrehozott bármire, például használja setfacl -md:o::- /data.

Az ACL-ek és a normál engedélyek nem mindig vannak jól integrálva. Problémák merülhetnek fel, ha alapértelmezett ACL-t alkalmaz egy könyvtárra, majd a rendszer hozzáadja az elemeket a könyvtárhoz, majd megpróbálja megváltoztatni a normál engedélyeket. A normál engedélyekre vonatkozó változtatások nem jelennek meg megfelelően az ACL áttekintésében. A problémák elkerülése érdekében először állítsa be a normál engedélyeket, majd állítsa be az alapértelmezett ACL-eket (és utána próbálja meg ne módosítani őket).

Példa emelt szintű jogkezelésre ACL-ek használatával

Ebben a példában folytatni fogja a korábban létrehozott /data/account és /data/sales könyvtárakat. Az előző példákban biztosította, hogy az értékesítési csoport a /data/sales, a fiókcsoport pedig a /data/account engedélyekkel rendelkezik.

Először győződjön meg arról, hogy a fiókcsoport olvasási engedélyeket kap a /data/sales könyvtárban, az értékesítési csoport pedig a /data/account könyvtárban.

Ezután beállíthatja az alapértelmezett ACL-eket, hogy megbizonyosodjon arról, hogy minden új fájl rendelkezik a megfelelő engedélyekkel minden új elemhez.

  1. Nyisson meg egy terminált.
  2. Végrehajt setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. Végrehajt getfaclhogy az engedélyek a kívánt módon vannak-e beállítva.
  4. Végrehajt setfacl -md:g:account:rwx,g:sales:rx /data/salesaz értékesítési címtár alapértelmezett ACL beállításához.
  5. Adjon hozzá egy alapértelmezett ACL-t a /data/account könyvtárhoz a használatával setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. A /data/sales új fájl hozzáadásával ellenőrizze, hogy az ACL-beállítások érvényben vannak-e. teljes érintse meg a /data/sales/newfile elemet és végrehajtani getfacl /data/sales/newfile az aktuális engedélyek ellenőrzéséhez.

Alapértelmezett engedélyek beállítása umask segítségével

Fentebb megtanulta, hogyan kell dolgozni az alapértelmezett ACL-ekkel. Ha nem használ ACL-t, van egy shell-beállítás, amely meghatározza a kapott alapértelmezett engedélyeket: umask (fordított maszk). Ebben a szakaszban megtudhatja, hogyan módosíthatja az alapértelmezett engedélyeket umask.

Talán észrevette, hogy új fájl létrehozásakor bizonyos alapértelmezett engedélyek be vannak állítva. Ezeket az engedélyeket a beállítás határozza meg umask. Ez a shell-beállítás minden felhasználóra vonatkozik bejelentkezéskor. A paraméterben umask számértéket használnak, amelyet levonnak a fájlhoz automatikusan beállítható maximális jogosultságokból; a fájlok maximális beállítása 666, a könyvtáraké pedig 777.

Néhány kivétel azonban vonatkozik erre a szabályra. A beállítások teljes áttekintését megtalálja umask az alábbi táblázatban.

-ban használt számok közül umask, mint a parancs numerikus argumentumai esetében chmod, az első számjegy a felhasználó engedélyeire, a második számjegy a csoport engedélyeire, az utolsó pedig a mások számára beállított alapértelmezett engedélyekre utal. Jelentése umask az alapértelmezett 022 644-et ad minden új fájlhoz és 755-öt a szerveren létrehozott összes új könyvtárhoz.

Az összes számérték teljes áttekintése umask és eredményeiket az alábbi táblázatban.

Engedélyek Linuxban (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Az umask-beállítás működésének egyszerű módja a következő: kezdje a fájl alapértelmezett engedélyeivel 666-ra, és vonja ki az umask-t, hogy megkapja a tényleges engedélyeket. Tegye ugyanezt a könyvtárral és annak alapértelmezett 777-es engedélyeivel.

Kétféleképpen módosíthatja az umask beállítást: az összes felhasználó és az egyes felhasználók számára. Ha be szeretné állítani az umask értéket az összes felhasználó számára, gondoskodnia kell arról, hogy az umask beállítás figyelembe legyen véve a shell környezeti fájlok indításakor, az /etc/profile fájlban megadottak szerint. A helyes megközelítés az umask.sh nevű shell szkript létrehozása az /etc/profile.d könyvtárban, és megadja a használni kívánt umask parancsfájlt. Ha az umask megváltozik ebben a fájlban, akkor a rendszer minden felhasználóra alkalmazza a szerverre való bejelentkezés után.

Az umask beállításának alternatívája az /etc/profile és a kapcsolódó fájlokon keresztül, ahol minden bejelentkező felhasználóra vonatkozik, az umask beállításainak módosítása egy .profile nevű fájlban, amely minden felhasználó saját könyvtárában jön létre.

Az ebben a fájlban alkalmazott beállítások csak az egyes felhasználókra vonatkoznak; ezért ez egy jó módszer, ha több részletre van szüksége. Én személy szerint szeretem ezt a funkciót, amely megváltoztatja a root felhasználó alapértelmezett umask-ját 027-re, miközben a normál felhasználók a 022-es alapértelmezett umask-val futnak.

Kibővített felhasználói attribútumokkal végzett munka

Ez az utolsó szakasz a Linux-engedélyekről.

Ha jogosultságokkal dolgozik, mindig van kapcsolat a felhasználói vagy csoportobjektumok és a felhasználói vagy csoportobjektumok fájlban vagy könyvtárban meglévő engedélyei között. A Linux-kiszolgálón lévő fájlok védelmének alternatív módja az attribútumokkal való munka.
Az attribútumok elvégzik a feladatukat, függetlenül attól, hogy a felhasználó hozzáfér-e a fájlhoz.

Az ACL-ekhez hasonlóan a fájlattribútumoknak is tartalmazniuk kell ezt a beállítást felmászik.

Ez egy lehetőség user_xattr. Ha a „művelet nem támogatott” üzenetet kap, amikor kiterjesztett felhasználói attribútumokkal dolgozik, feltétlenül állítsa be a paramétert felmászik az /etc/fstab fájlban.

Számos attribútum dokumentálva van. Néhány attribútum elérhető, de még nem implementálva. Ne használja őket; nem hoznak neked semmit.

Az alábbiakban felsoroljuk az alkalmazható leghasznosabb attribútumokat:

A Ez az attribútum biztosítja, hogy a fájl elérési ideje ne változzon.
Általában minden alkalommal, amikor egy fájlt megnyitnak, a fájl hozzáférési idejét rögzíteni kell a fájl metaadatai között. Ez negatívan befolyásolja a teljesítményt; így a rendszeresen elért fájlok esetében az attribútum A használható a funkció letiltására.

a Ez az attribútum lehetővé teszi fájl hozzáadását, de eltávolítását.

c Ha olyan fájlrendszert használ, amely támogatja a kötetszintű tömörítést, ez a fájlattribútum biztosítja, hogy a fájl tömörítésre kerüljön a tömörítési mechanizmus első engedélyezésekor.

D Ez az attribútum biztosítja, hogy a fájlok módosításai azonnal a lemezre kerüljenek, nem pedig először a gyorsítótárban. Ez egy hasznos attribútum a fontos adatbázisfájloknál, hogy ne vesszenek el a fájl-gyorsítótár és a merevlemez között.

d Ez az attribútum biztosítja, hogy a fájl ne kerüljön mentésre olyan biztonsági másolatokba, ahol a dump segédprogramot használják.

I Ez az attribútum lehetővé teszi az indexelést abban a könyvtárban, amelyben engedélyezve van. Ez gyorsabb fájlhozzáférést biztosít az olyan primitív fájlrendszerek számára, mint az Ext3, amelyek nem használják a B-tree adatbázist a gyors fájlhozzáféréshez.

i Ez az attribútum megváltoztathatatlanná teszi a fájlt. Ezért nem lehet módosítani a fájlt, ami a további védelmet igénylő fájlok esetén hasznos.

j Ez az attribútum biztosítja, hogy ext3 fájlrendszeren a fájl először a naplóba, majd a merevlemez adatblokkjaiba kerüljön.

s A fájl törlése után írja felül 0-ra azokat a blokkokat, amelyekben a fájl el lett mentve. Ez biztosítja, hogy a fájl ne állítható vissza a törlés után.

u Ez az attribútum a törléssel kapcsolatos információkat tárol. Ez lehetővé teszi egy olyan segédprogram fejlesztését, amely ezekkel az információkkal működik a törölt fájlok megmentésére.

Ha alkalmazni szeretné az attribútumokat, használhatja a parancsot fecsegés. Például használja chattr +s valami fájlattribútumokat alkalmazni valamilyen fájlra. El kell távolítani egy attribútumot? Akkor használd chattr -s somefileés eltávolítják. Ha áttekintést szeretne kapni az összes jelenleg alkalmazott attribútumról, használja a parancsot lsattr.

Összegzés

Ebből a cikkből megtanulta, hogyan kell az engedélyekkel dolgozni. Olvassa el a három alapvető engedélyt, a speciális engedélyeket és az ACL-ek fájlrendszeren való alkalmazását. Azt is megtanulta, hogyan használhatja az umask opciót az alapértelmezett engedélyek alkalmazására. A cikk végén megtanulta, hogyan használhatja a felhasználó által kibővített attribútumokat a fájlrendszer biztonságának további rétegére.

Ha tetszett ez a fordítás, kérjük, írjon róla a megjegyzésekben. Több motiváció lesz hasznos fordítások készítésére.

Kijavítottunk néhány elírást és nyelvtani hibát a cikkben. Néhány terjedelmes bekezdést kisebbre csökkentett a jobb olvashatóság érdekében.

A "Csak a címtárhoz adminisztrátori jogokkal rendelkező személy kérhet végrehajtási engedélyt" helyett. Javítva: "Csak olyan személy alkalmazhat végrehajtási engedélyt, aki rendelkezik írási jogosultsággal a könyvtárban." Ez a helyesebb lenne.

Köszönöm a hozzászólásokat berez.

Lecserélve:
Ha nem Ön a felhasználó tulajdonosa, a shell ellenőrzi, hogy tagja-e egy csoportnak, más néven a fájl csoportjának.

A:
Ha nem Ön a fájl tulajdonosa, a shell ellenőrzi, hogy Ön egy olyan csoport tagja-e, amely jogosultsággal rendelkezik a fájlhoz. Ha tagja ennek a csoportnak, akkor a csoport által beállított engedélyekkel fog hozzáférni a fájlhoz, és a shell leállítja az ellenőrzést.

Köszönjük észrevételét CryptoPirate

Forrás: will.com

Hozzászólás