Üdvözlet mindenkinek. Ez egy fordítás a RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 és EX300 könyv cikkéből.
Saját megjegyzésem: Bízom benne, hogy a cikk hasznos lesz nemcsak a kezdők számára, hanem segít a tapasztaltabb rendszergazdáknak is, hogy rendszerezzék tudásukat.
Nos, lássuk.

A fájlokhoz való hozzáféréshez Linuxban jogosultságokat használnak. Ezeket a jogosultságokat három objektumnak osztják ki: a fájl tulajdonosának, a csoport tulajdonosának és a másik objektumnak (azaz mindenki másnak). Ebben a cikkben megtudhatja, hogyan alkalmazza a jogosultságokat.
A cikk az alapfogalmak áttekintésével kezdődik, majd a speciális jogosultságok (Special permissions) és a hozzáférés-ellenőrzési listák (ACL) kerülnek szóba. A cikk végén a jogosultságok alapértelmezett beállításáról az umask-on keresztül, valamint a kiterjesztett felhasználói attribútumok kezeléséről lesz szó.
Fájlok tulajdonlásának kezelése
Mielőtt a jogosultságokról beszélnénk, tudnia kell a fájlok és könyvtárak tulajdonosának szerepéről. A fájlok és könyvtárak tulajdonlása létfontosságú a jogosultságok kezeléséhez. Ebben a részben először azt tudhatja meg, hogyan láthatja a tulajdonost. Ezt követően megtudhatja, hogyan változtathatja meg az egyes fájlok és könyvtárak tulajdonosát és csoportját.
A fájl vagy könyvtár tulajdonosának megjelenítése
Linuxban minden fájlnak és könyvtárnak két tulajdonosa van: a felhasználó és a csoport tulajdonosa.
Ezeket a tulajdonosokat a fájl vagy könyvtár létrehozásakor állítják be. Az a felhasználó, aki létrehozza a fájlt, annak tulajdonosa lesz, míg az a primer csoport, amelybe ez a felhasználó tartozik, szintén annak tulajdonosa lesz. Ahhoz, hogy meghatározza, van-e hozzáférési joga a fájlhoz vagy könyvtárhoz, a shell ellenőrzi a tulajdonjogokat.
Ez a következő sorrendben történik:
- A shell ellenőrzi, hogy Ön a fájl tulajdonosa-e, amelyhez hozzáférést kíván kapni. Ha Ön a tulajdonos, akkor megkapja a jogosultságokat, és a shell leállítja az ellenőrzést.
- Ha Ön nem a fájl tulajdonosa, a shell ellenőrzi, hogy Ön tagja-e annak a csoportnak, amely jogosultsággal rendelkezik a fájlhoz. Ha Ön annak a csoportnak a tagja, akkor azon jogosultságokkal fér hozzá a fájlhoz, amelyeket a csoport számára beállítottak, és a shell leállítja az ellenőrzést.
- Ha Ön sem a felhasználó, sem a csoport tulajdonosa, akkor a más felhasználók jogosultságaival fér hozzá (Other).
A jelenlegi tulajdonosi beállítások megtekintéséhez használhatja a parancsot ls -l. Ez a parancs megmutatja a felhasználót és a csoporttulajdonost. Az alábbiakban láthatja a tulajdonos beállításait a /home könyvtárban található könyvtárakban.
[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 következő parancs segítségével ls megjelenítheti a fájlok tulajdonosát ebben a könyvtárban. Néha hasznos lehet megkapni azon fájlok listáját a rendszerben, amelyeknél egy adott felhasználó vagy csoport szerepel tulajdonosként. Ehhez használhatja find. Az argumentum find -user ezt a célt szolgálja. Például a következő parancs megmutatja az összes fájlt, amelynek tulajdonosa a linda felhasználó:
find / -user lindaEzenkívül használhatja find fájlok keresésére, ahol egy adott csoport a tulajdonos.
Például a következő parancs megkeresi az összes fájlt, amely a csoport tagja Miután megállapítottuk, hogy ki küldte a kérést, meg kell határoznunk, hogy az adott alanynak mit engedélyeztek. Egyes szolgáltatásrácsok lehetővé teszik alapvető irányelvek (arról, hogy ki mit tehet) megadását YAML-fájlok formájában vagy parancssoron, míg mások integrációt kínálnak olyan keretrendszerekkel, mint az:
find / -group usersA tulajdonos megváltoztatása
A megfelelő jogosultságok alkalmazásához az első szempont, amit figyelembe kell venni, a tulajdonjog. Erre a célra van egy parancs chown. Ennek a parancsnak a szintaxisa könnyen érthető:
chown ki mitPéldául a következő parancs megváltoztatja a /home/account könyvtár tulajdonosát linda felhasználóra:
chown linda /home/accountA parancs chown több opcióval rendelkezik, az egyik különösen hasznos: -R. Meg tudja találni, mit csinál, mert ez az opció más parancsoknál is elérhető. Ez lehetővé teszi, hogy rekurzívan állítsa be a tulajdonost, így a jelenlegi könyvtár tulajdonosát és mindent, ami alatta található beállíthatja. A következő parancs a /home könyvtár és minden alatta lévő elem tulajdonosát linda felhasználóra változtatja:
Most a tulajdonosok í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
Futtatjuk:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Most a lisa felhasználó lett a account kö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
A csoport tulajdonosának megváltoztatása
Két módja van a csoporttulajdon megszüntetésének. Ezt megteheti chown, de van egy speciális parancs, amelynek neve chgrp, ami ezt a munkát végzi. Ha használni szeretné a parancsot chown, használja . vagy : a csoport neve előtt.
A következő parancs megváltoztatja a csoport tulajdonosát a /home/account alatt account-ra:
chown .account /home/account
Használhatja chown a felhasználó és/vagy csoport tulajdonosának megváltoztatására több módszerrel. Íme néhány példa:
- chown lisa myfile1 a myfile1 fájl tulajdonosává teszi lisát.
- chown lisa.sales myfile lisát teszi a myfile fájl tulajdonosává, és a sales csoportot is a fájl tulajdonosává teszi.
- chown lisa:sales myfile ugyanaz, mint az előző parancs.
- chown .sales myfile a sales csoportot teszi a myfile fájl tulajdonosává a felhasználó tulajdonosa megváltoztatása nélkül.
- chown :sales myfile ugyanaz, mint az előző parancs.
Használhatja a parancsot chgrp, hogy megváltoztassa a csoport tulajdonosát. Nézzünk egy következő példát, ahol chgrp a sales csoportot teszi a account könyvtár tulajdonosává:
chgrp .sales /home/accountAhogy az chown, használhatja a -R a chgrp, valamint rekurzívan is változtathatja a csoport tulajdonosát.
Az alapértelmezett tulajdonos megértése
Megfigyelhette, hogy amikor a felhasználó fájlt hoz létre, alapértelmezett tulajdonlás lép érvénybe.
A fájlt létrehozó felhasználó automatikusan a fájl tulajdonosa lesz, míg a felhasználó alapcsoportja automatikusan a fájl tulajdonosává válik. Ez általában az a csoport, amelyet a /etc/passwd fájlban a felhasználó alapcsoportjaként határoznak meg. Azonban ha a felhasználó több csoport tagja, megváltoztathatja az érvényes alapcsoportját.
A jelenlegi érvényes alapcsoport megjelenítéséhez a felhasználó használhatja a parancsot groups:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Ha a jelenlegi felhasználó, linda, szeretné megváltoztatni az érvényes alapcsoportját, a következő parancsot kell használnia newgrp, amely után a csoport neve következik, amelyet új érvényes alapcsoportként szeretne beállítani. A parancs használata után newgrp az alapcsoport aktív marad, amíg a felhasználó nem ír be egy parancsot exit vagy ki nem lép a rendszerből.
Itt látható, hogy linda hogyan használja ezt a parancsot, és milyen alapcsoport lett a sales csoport:
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 főcsoport módosítása után minden új fájl, amelyet a felhasználó létrehoz, ezt a csoportot kapja meg csoporttulajdonosként. A főcsoport kezdeti beállításához használja exit.
Ahhoz, hogy használni tudja a parancsot newgrp, a felhasználónak tagjának kell lennie annak a csoportnak, amelyet elsődleges csoportként szeretne használni. Ezen túlmenően a csoport jelszava használható a csoporthoz a parancs segítségével gpasswd. Ha a felhasználó a parancsot használja, de nem tagja a célcsoportnak, a shell kéri a csoport jelszavát. Miután beírta a helyes csoportjelszót, a új hatékony elsődleges csoport beállításra kerül. newgrpAz alapvető jogok kezelése
A Linux jogosultsági rendszere az 1970-es években született. Mivel abban az időben a számítástechnikai igények korlátozottak voltak, az alap jogosultsági rendszer meglehetősen korlátozott volt. Ez a jogosultsági rendszer három jogosultságot használ, amelyeket fájlokra és könyvtárakra alkalmazhat. Ebben a részben megtudja, hogyan lehet ezeket a jogosultságokat használni és megváltoztatni.
A jogosultságok olvasása, írása és végrehajtása
A három alapvető jogosultság lehetővé teszi a fájlok olvasását, írását és végrehajtását. E jogosultságok hatása eltérő fájlokra és könyvtárakra alkalmazva. Fájlt illetően az olvasási jogosultság lehetővé teszi, hogy megnyissa a fájlt olvasásra. Ezért fel tudja olvasni annak tartalmát, de ez azt jelenti, hogy a számítógépe meg tudja nyitni a fájlt, hogy végezzen valamit vele.
A programfájl, amely hozzáférést igényel egy könyvtárhoz, például olvasási hozzáféréssel kell rendelkeznie ahhoz a könyvtárhoz. Ezért az olvasási jogosultság a legalapvetőbb jogosultság, amelyre szüksége van a fájlokkal való munkához.
Könyvtár esetében az olvasás lehetővé teszi a könyvtár tartalmának megjelenítését. Tudnia kell, hogy ez a jogosultság nem teszi lehetővé a könyvtárban lévő fájlok olvasását. A Linux jogosultsági rendszere nem ismeri az öröklődést, és az egyetlen módja a fájl olvasásának, ha a fájlhoz olvasási jogosultságot használ.
A katalógusra vonatkozóan az olvasás lehetővé teszi ennek a katalógusnak a tartalmának megjelenítését. Tudnia kell, hogy ez a jogosultság nem teszi lehetővé a fájlok olvasását a katalógusban. A Linux jogosultsági rendszere nem ismeri az öröklődést, és az egyetlen módja a fájl olvasásának az, ha erre a fájlra olvasási jogosultságokat használ.
Ahogy valószínűleg kitalálta, a fájlra vonatkozó írási jogosultság lehetővé teszi a fájlba való írást. Más szóval, lehetőséget ad a meglévő fájlok tartalmának módosítására. Azonban nem teszi lehetővé új fájlok létrehozását vagy törlését, illetve a fájlhozzáférési jogok megváltoztatását. Ehhez írási jogosultságot kell biztosítani a könyvtárban, ahol a fájlt szeretné létrehozni. A könyvtárak esetében ez a jogosultság lehetővé teszi új almappák létrehozását és törlését is.
A végrehajtási jogosultság az, amire szükség van a fájl futtatásához. Ez soha nem lesz alapértelmezett állapotban beállítva, ami a Linuxot gyakorlatilag teljes mértékben ellenállóvá teszi a vírusokkal szemben. Csak az a személy, akinek írási jogosultsága van a könyvtárra, alkalmazhat végrehajtási jogosultságot.
Az alábbiakban összefoglalva a fő jogosultságok használata:

A chmod használata
A jogok kezelésére a parancsot használjuk chmod. A parancs használatával chmod beállíthatja a jogosultságokat a felhasználók (user), csoportok (group) és mások (other) számára. Ezt a parancsot két módon használhatja: relatív mód és abszolút mód. Az abszolút módban három számot használnak a fő jogosultságok beállításához.

A jogosultságok beállításakor határozza meg a szükséges értéket. Ha azt szeretné, hogy a felhasználó számára olvasási, írási és végrehajtási jogok, a csoport számára olvasási és végrehajtási jogok, valamint mások számára olvasási és végrehajtási jogok legyenek a fájlban /somefile, akkor használja a következő parancsot chmod:
chmod 755 /somefileAmikor a parancsot használja chmod így az összes aktuális jogosultságot felülírja az Ön által beállított jogosultságokkal.
Ha az aktuális jogosultságokkal kapcsolatosan szeretné módosítani a jogosultságokat, akkor használhatja a chmod parancsot relatív módban. A relatív mód használatakor három indikátort használ arra, hogy megmondja, mit szeretne tenni: chmod Először megadja, hogy kinek szeretné megváltoztatni a jogosultságait. Ehhez választhat a felhasználó (
- u), csoport () és mások (go) között. Ezután használ egy operátort a jogosultságok hozzáadására vagy eltávolítására az aktuális módból, vagy abszolút jogokat állít be.).
- Végül használja a
- parancsot, hogy megadja, milyen jogosultságokat szeretne beállítani. r, w és x, hogy megadja, milyen jogosultságokat szeretne beállítani.
Relatív módban a jogosultságok megváltoztatásakor kihagyhatja a 'kinek' részt, hogy jogosultságot adjon vagy vonjon meg minden objektum számára. Például ez a parancs végrehajtási jogosultságot ad minden felhasználónak:
chmod +x somefileRelatív módban bonyolultabb parancsokat is használhat. Például ez a parancs írási jogosultságot ad a csoportnak és eltávolítja az olvasási jogosultságot mások számára:
chmod g+w,o-r somefileHasználat közben chmod -R o+rx /data ezzel végrehajtási jogosultságot ad minden mappa és a /data mappában lévő fájlok számára. Ahhoz, hogy csak a mappák számára adjon végrehajtási jogosultságot, fájlok nélkül, használja a következőt: chmod -R o+rX /data.
A nagy X biztosítja, hogy a fájlok ne kapjanak végrehajtási jogosultságot, ha a fájl már nem rendelkezik végrehajtási jogosultsággal néhány objektumnál. Ez az X okosabb módja a végrehajtási jogosultságok kezelésének; elkerüli, hogy ezt a jogosultságot olyan fájlokra állítsa be, ahol az nem szükséges.
Kiterjesztett jogosultságok
Amit most olvasott alapvető jogosultságokon túl, a Linuxban létezik egy készlet kiterjesztett jogosultságokból is. Ezek nem azok a jogosultságok, amelyeket alapértelmezés szerint beállít, de időnként hasznos kiegészítést nyújtanak. Ebben a részben megtudja, mik ezek és hogyan lehet őket beállítani.
A kiterjesztett SUID, GUID és sticky bit jogosultságok megértése
Három fejlett jogosultság létezik. Az első a felhasználói azonosító beállítására (SUID) vonatkozó jogosultság. Különleges esetekben ezt a jogosultságot alkalmazhatja végrehajtható fájlokra. Alapértelmezés szerint az a felhasználó, aki végrehajt egy fájlt, a saját jogosultságaival futtatja azt.
Átlagos felhasználók számára ez általában azt jelenti, hogy a program használata korlátozott. Azonban bizonyos esetekben a felhasználónak különleges jogosultságokra van szüksége, csupán egy adott feladat végrehajtásához.
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 bele kell írnia az új jelszavát a /etc/shadow fájlba. Azonban ez a fájl nem írható a root hozzáféréssel nem rendelkező felhasználók számára:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
A SUID permission provides a solution to this problem. In the utility /usr/bin/passwd, this permission is applied by default. This means that when changing a password, the user temporarily obtains root privileges, allowing them to write to the /etc/shadow file. You can see the SUID permission at ls -l hogyan s the position where you would typically expect to see x for user permissions:
[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd
SUID permission may seem useful (and in some cases it is), but at the same time it is potentially dangerous. If used incorrectly, you might accidentally grant root access. Therefore, I recommend using it only with maximum caution.
Most administrators will never need to use it; you will only see it in certain files where the operating system must set it by default.
The second special permission is the setgid (SGID). This permission has two effects. When applied to an executable file, it grants the user executing the file the permissions of the group owner of that file. Thus, SGID can perform more or less the same function as SUID. However, SGID is rarely used for this purpose.
As with SUID permission, SGID is applied to some system files as a default setting.
When applied to a directory, SGID can be useful because you can use it to set the default group owner for files and subdirectories created in that directory. By default, when a user creates a file, their effective primary group is set as the group owner for that file.
This is not always very useful, especially since users of Red Hat/CentOS have their primary group set to a group with the same name as the user, and of which the user is the only member. Thus, by default, the files created by the user will be group-owned for public access.
Imagine a situation where users linda and lori work in accounting and are members of the group accountAlapértelmezés szerint ezek a felhasználók egy privát csoport tagjai, amelynek egyetlen tagja ők maguk. Ugyanakkor mindkét felhasználó tagja a csoportnak, de másodlagos csoportként is szerepelnek.
Az alaphelyzet az, hogy amikor bármelyik felhasználó fájlt hoz létre, az alapcsoport lesz a tulajdonos. Ezért alapértelmezés szerint linda nem férhet hozzá lori által létrehozott fájlokhoz, és fordítva. Azonban, ha létrehoz egy közös csoportkönyvtárat (mondjuk /groups/account), és biztosítja, hogy az SGID engedély alkalmazva van arra a könyvtárra, és hogy a csoport az ő csoporttulajdonosként van beállítva, akkor az összes fájl, amelyet ebben a könyvtárban és minden almappájában hoznak létre, szintén az account csoportot kapja meg alapértelmezett csoporttulajdonosként.
Ezért az SGID engedély nagyon hasznos engedély a közös csoportok könyvtáraiban.
Az SGID engedély a kimeneti listában jelenik meg ls -l hogyan s azon a helyen, ahol általában a csoport végrehajtási engedélyét találja:
[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 ápr 30 21:28 account
A harmadik speciális engedély a sticky bit. Ez az engedély hasznos a fájlok véletlen törlése ellen, amikor több felhasználónak is írási joga van ugyanabban a könyvtárban. Ha a sticky bit alkalmazva van, a felhasználó csak akkor törölhet fájlt, ha ő a fájl vagy a fájl által tárolt könyvtár tulajdonosa. Ezért a /tmp könyvtár alapértelmezett engedélyeként is alkalmazzák, és hasznos lehet a közös csoportok könyvtárainál is.
Sticky bit nélkül, ha a felhasználó fájlokat hozhat létre a könyvtárban, akkor fájlokat is törölhet arról a könyvtárról. Egy nyilvános csoportkörnyezetben ez zavaró lehet. Képzelje el, hogy linda és lori felhasználóknak is írási joga van a /data/account könyvtárban, és ezeket az engedélyeket a account csoportban való részvételükkel szerzik meg. Ezért linda törölheti lori által létrehozott fájlokat, és fordítva.
Amikor alkalmazza a sticky bit-et, a felhasználók csak akkor törölhetik a fájlokat, ha az alábbi feltételek közül legalább az egyik teljesül:
- A felhasználó a fájl tulajdonosa;
- A felhasználó a fájl tartalmazó könyvtár tulajdonosa.
Használat közben ls -l, láthatja a sticky bit-et mint t abban a pozícióban, ahol általában mások végrehajtási engedélyét látja:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 ápr 30 21:28 account/
Speciális jogok alkalmazása
A SUID, SGID és sticky bit alkalmazásához használhatja a következőt is chmod. A SUID numerikus értéke 4, az SGID numerikus értéke 2, míg a sticky bit numerikus értéke 1.
Ha ezeket a jogosultságokat szeretné alkalmazni, négyjegyű argumentumot kell hozzáadnia a chmod, amelynek első számjegye a speciális jogosultságokkal kapcsolatos. A következő sor például SGID jogosultságot ad a könyvtárhoz, és rwx-et állít be a felhasználó számára, míg az csoport és mások számára rx-t:
chmod 2755 /somedirEz meglehetősen nem praktikus, ha meg szeretné nézni a jelenlegi jogosultságokat, amelyeket beállított, mielőtt dolgozna a chmod abszolút módban. (Kockáztatja, hogy felülírja a jogosultságokat, ha ezt nem teszi.) Ezért azt javaslom, hogy relatív módban dolgozzon, ha bármelyik speciális jogosultságot alkalmaznia kell:
- A SUID esetén használja chmod u+s.
- Az SGID esetén használja chmod g+s.
- A sticky bit esetén használja chmod +t, majd a fájl vagy könyvtár neve, amelyhez be szeretné állítani a jogosultságokat.
A táblázat összegzi mindazt, amit tudni érdemes a speciális jogosultságok kezeléséről.

Példa a speciális jogok használatára
Ebben a példában speciális jogosultságokat használ, hogy a csoport tagjai könnyebben megoszthassák a fájlokat a közös könyvtárban. Beállítja a csoport azonosító bitjét, valamint a sticky bitet, és látja, hogy ezek beállítása után új funkciók segítik a csoporttagok együttműködését.
- Nyisson meg egy terminált, ahol ön linda felhasználó. Felhasználót a következő parancs segítségével hozhat létre: useradd linda, majd állítson be jelszót: passwd linda.
- Hozza létre a gyökérben a /data könyvtárat és a /data/sales alkönyvtárat a következő paranccsal: mkdir -p /data/sales. Futtassa a cd /data/sales, hogy a sales könyvtárba lépjen. Futtassa a touch linda1 és touch linda2, hogy két üres fájlt hozzon létre, amelyek tulajdonosa linda.
- Futtassa a su — lisa parancsot a jelenlegi felhasználó átkapcsolásához lisa felhasználóra, aki szintén a sales csoport tagja.
- Futtassa a cd /data/sales és ebből a könyvtárból futtassa a parancsot. ls -l. Két fájlt fog látni, amelyet linda hozott létre, és a linda csoporthoz tartozik. Futtassa a rm -f linda*. Ez eltávolítja mindkét fájlt.
- Futtassa a touch lisa1 és touch lisa2, hogy két fájlt hozzon létre, amelyek tulajdonosa lisa.
- Futtassa a su — a gyökérszintre való felemeléshez.
- Futtassa a chmod g+s,o+t /data/sales, hogy beállítsa a csoportazonosító bitet (GUID), valamint a sticky bitet a közös csoport könyvtárában.
- Futtassa a su — linda. Ezután hajtsa végre a touch linda3 és touch linda4. Most látnia kell, hogy a két általad létrehozott fájl a sales csoporthoz tartozik, amely a /data/sales könyvtárának csoporttulajdonosa.
- Futtassa a rm -rf lisa*. A sticky bit megakadályozza, hogy linda felhasználó ne törölje ezeket a fájlokat, mivel nem ő a fájlok tulajdonosa. Ne feledd, ha linda felhasználó a /data/sales könyvtárának tulajdonosa, akkor is törölheti ezeket a fájlokat!
ACL-kezelés (setfacl, getfacl) Linuxban
Bár a fent említett kiterjesztett jogosultságok hasznos funkciókat adnak a Linux jogosultságkezeléséhez, nem teszik lehetővé, hogy több felhasználónak vagy egy csoportnak adjunk jogosultságokat egyetlen fájlban.
A hozzáférési vezérlő listák (ACL) kínálják ezt a funkciót. Ezen kívül lehetővé teszik az adminisztrátorok számára, hogy bonyolult módon állítsanak be alapértelmezett jogosultságokat, ahol a beállított jogosultságok különböző könyvtárakban eltérhetnek.
Az ACL megértése
Bár az ACL alrendszer nagyszerű funkciókat ad a szerveredhez, van egy hátránya: nem minden eszköz támogatja. Következésképpen elveszítheted az ACL beállításokat fájlok másolásakor vagy áthelyezésekor, és a biztonsági mentésre használt szoftver esetleg nem fogja biztonsági másolatot készíteni az ACL beállításokról.
A tar eszköz nem támogatja az ACL-t. Annak biztosítása érdekében, hogy az ACL beállítások ne vesszenek el a biztonsági mentés készítése során, használj star helyett tar. star ugyanazokkal a paraméterekkel működik, mint a tar; egyszerűen csak hozzáadja az ACL beállítások támogatását.
Az ACL biztonsági másolatát létrehozhatod a getfacl, amelyet a setfacl parancs segítségével lehet visszaállítani. A biztonsági másolat elkészítéséhez használd a getfacl -R /directory > file.acls. A beállítások visszaállításához a biztonsági mentésből használd a setfacl —restore=file.acl.
A támogatás hiánya bizonyos eszközökkel nem kell, hogy problémát jelentsen. Az ACL listákat gyakran alkalmazzák könyvtárakra, mint struktúrált intézkedést, nem pedig külön fájlokra.
Ezért nem lesz belőlük sok, csupán néhány, amelyeket a fájlrendszer okos helyein alkalmaztak. Következésképpen a visszaállított ACL listák, amelyekkel dolgozott, viszonylag könnyen helyreállíthatók, még akkor is, ha a biztonsági mentő szoftvere nem támogatja őket.
Az ACL-hez szükséges fájlrendszer előkészítése
Az ACL használatba vétele előtt előfordulhat, hogy a fájlrendszert elő kell készíteni az ACL támogatásához. Mivel a fájlrendszer metaadatait ki kell szélesíteni, nem minden esetben van alapértelmezett ACL támogatás a fájlrendszerben. Ha az ACL listák konfigurálásakor az "operation not supported" üzenetet kapja, lehet, hogy az Ön fájlrendszere nem támogatja az ACL-t.
Ennek kijavításához hozzá kell adnia az opciót acl mount az /etc/fstab fájlhoz, hogy a fájlrendszer alapértelmezés szerint ACL támogatással kerülhessen beépítésre.
Az ACL beállításainak módosítása és megtekintése a setfacl és getfacl használatával
Az ACL beállításához szükség van a következő parancsra: setfacl. A jelenlegi ACL beállítások megtekintéséhez szüksége van a getfacl. A parancs ls -l nem mutat semmilyen meglévő ACL-t; csak egy + jelet mutat a jogosultságok listájában, amely jelzi, hogy az ACL listák alkalmazva vannak a fájlra.
Az ACL listák beállítása előtt mindig hasznos megmutatni a jelenlegi ACL beállításokat a következővel: getfacl. Az alábbi példában láthatja a jelenlegi hozzáférési jogokat, ahogy azt a következő mutatja: ls -l, és ahogy az alábbiakban látható: getfacl. Ha elég figyelmesen nézi, látni fogja, hogy a megjelenített információ pontosan ugyanaz.
[root@server1 \/]# ls -ld \/dir\ndrwxr-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ása után getfacl az alábbiakban látható, hogy a jogosultságok három különböző objektumra vonatkoznak: felhasználóra, csoportra és másokra. Most adjunk hozzá egy ACL-t, hogy olvasási és végrehajtási jogokat adjunk a sales csoportnak. Ehhez a parancs: setfacl -m g:sales:rx \/dir. Ezen a parancson belül -m jelzi, hogy a jelenlegi ACL beállításokat meg kell változtatni. Ezután g:sales:rx jelzi a parancsnak, hogy az ACL-t olvasási és végrehajtási jogokkal kell beállítani (rx) a (g) sales csoport számára. Az alábbiakban láthatja, hogy hogyan néz ki a parancs, valamint a getfacl parancs kimenete a jelenlegi 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 már, hogy tudod, hogyan kell beállítani a csoportos ACL-t, könnyen megértheted az ACL-t a felhasználók és más felhasználók számára. Például, a parancs setfacl -m u:linda:rwx /data engedélyeket ad a linda felhasználónak a /data könyvtárban, anélkül, hogy ő lenne a tulajdonosa, és anélkül, hogy megváltoztatná a jelenlegi tulajdonos kijelölését.
A parancs setfacl sok lehetőséget és opciót kínál. Az egyik különösen fontos lehetőség a -R. Ha használják, ez a lehetőség beállítja az ACL-t az összes fájlra és alkönyvtárra, amelyek jelenleg léteznek abban a könyvtárban, ahol az ACL-t telepíted. Javasolt mindig használni ezt a lehetőséget, amikor az ACL-listákat módosítod a meglévő könyvtárak esetén.
Az alapértelmezett ACL-el való munka
Az ACL-listák használatának egyik előnye, hogy engedélyeket adhatsz több felhasználónak vagy csoportnak egy könyvtárban. Egy másik előnye, hogy öröklődést is megvalósíthatsz az alapértelmezett ACL-ek használata közben.
Az alapértelmezett ACL beállításakor meghatározod az engedélyeket, amelyek az összes új elemre vonatkozni fognak, amely a könyvtárban jön létre. Ne feledd, hogy az alapértelmezett ACL nem módosítja a meglévő fájlok és alkönyvtárak engedélyeit. A megváltoztatásukhoz egy szokásos ACL-t is hozzá kell adni!
Fontos ezt tudni. Ha az ACL-t szeretnéd használni több felhasználó vagy csoport hozzáférésének kezelésére egy könyvtárhoz, kétszer kell beállítanod az ACL-t. Először használd a setfacl -R -m, hogy módosítsd az ACL-t a meglévő fájlok számára. Ezután használd a setfacl -m d:, hogy gondoskodj minden új elemről, amely szintén létrejön.
Az alapértelmezett ACL beállításához egyszerűen hozzá kell adnod az opciót d az opció után -m (a sorrend fontos!). Ezért használd a setfacl -m d:g:sales:rx /data, ha azt szeretnéd, hogy az értékesítési csoport olvassa és hajtsa végre mindazt, ami valaha létrejön a /data könyvtárban.
Alapértelmezett ACL-listák használata esetén hasznos lehet mások ACL-jét is beállítani. Általában ennek nincs különösebb értelme, mivel az engedélyeket mások számára is megváltoztathatod a használatával. chmod. Azonban, amit nem tudsz megtenni a segítségével chmod, meg kell adni azokat a jogokat, amelyeket más felhasználóknak biztosítani kell minden új fájl esetében, amely valaha létrejön. Ha szeretné, hogy másoknak ne legyen engedélyük semmire, ami a /data-ban készült, például használja setfacl -m d:o::- /data.
Az ACL-ek és a normál engedélyek nem mindig jól integráltak. Problémák merülhetnek fel, ha alapértelmezett ACL-t alkalmazott egy könyvtárra, majd elemeket adott hozzá ehhez a könyvtárhoz, és később próbálta megváltoztatni a normál engedélyeket. A normál engedélyekre alkalmazott változtatások nem lesznek jól tükrözve az ACL áttekintésében. Az ilyen 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-t (ezután pedig próbálja meg nem módosítani őket újra).
Példa a kiterjesztett jogok kezelésére ACL segítségével
Ebben a példában folytatni fogja a munkát a /data/account és /data/sales könyvtárakkal, amelyeket korábban létrehozott. Az előző példákban biztosította, hogy a sales csoportnak engedélye volt a /data/sales-re, míg az account csoportnak engedélye volt a /data/account-ra.
Először győződjön meg arról, hogy az account csoportnak olvasási engedélye van a /data/sales könyvtárban, míg a sales csoportnak olvasási engedélye van a /data/account könyvtárban.
Ezután beállítja az alapértelmezett ACL listákat, hogy megbizonyosodjon arról, hogy minden új fájl megfelelő engedélyekkel rendelkezik az új elemekhez.
- Nyissa meg a terminált.
- Futtassa a setfacl -m g:account:rx /data/sales és setfacl -m g:sales:rx /data/account.
- Futtassa a getfacl, hogy megbizonyosodjon arról, hogy a hozzáférési jogok úgy lettek beállítva, ahogy szerette volna.
- Futtassa a setfacl -m d:g:account:rwx,g:sales:rx /data/sales, hogy alapértelmezett ACL-t állítson be a sales könyvtár számára.
- Adjon hozzá alapértelmezett ACL-t a /data/account könyvtárhoz, a következő segítségével setfacl -m d:g:sales:rwx,g:account:rx /data/account.
- Győződjön meg arról, hogy az ACL beállítások működnek új fájl hozzáadásával a /data/sales könyvtárba. Futtassa touch /data/sales/newfile és futtassa getfacl /data/sales/newfile a jelenlegi engedélyek ellenőrzésére.
Alapértelmezett jogok beállítása umask segítségével
Felül látta, hogyan lehet dolgozni az alapértelmezett ACL-el. Ha nem használ ACL-t, van egy shell paraméter, amely meghatározza az alapértelmezett jogokat, amelyeket megkap: umask (fordított maszk). Ebben a szakaszban megtudja, hogyan lehet módosítani az alapértelmezett engedélyeket a umask.
Valószínűleg észrevette, hogy amikor új fájlt hoz létre, bizonyos alapértelmezett engedélyek állnak be. Ezek az engedélyek a beállítással kerülnek meghatározásra umaskEz a shell paraméter minden felhasználóra vonatkozik a rendszerbe való bejelentkezéskor. A paraméter umask számértéket használ, amelyet a fájlhoz automatikusan beállítható maximális jogokból vonunk le; a fájlok maximális beállítása 666, a könyvtáraké pedig 777.
Azonban néhány kivétel vonatkozik erre a szabályra. A beállítások teljes áttekintését umask az alábbi táblázatban találja.
A számok esetében, amelyeket használunk umask, a numerikus argumentumok számára a parancs példájában, az első szám a felhasználói jogosultságokat, a második szám a csoport jogosultságait, míg az utolsó a már létező alapértelmezett jogosultságokat jelöli. Az érték chmodalapértelmezés szerint 022, ami 644-et ad minden új fájl számára és 755-öt minden új könyvtár számára, amely a szerveren jött létre. umask A számértékek teljes áttekintése
és azok eredményei az alábbi táblázatban találhatók. umask Egyszerű módja annak, hogy lássuk, hogyan működik az umask paraméter, a következő: kezdje az alapértelmezett fájl jogokkal 666-on, és vonja le az umask-ot, hogy megkapja a hatályos jogosultságokat. Ugyanezt tegye a könyvtárral és az alapértelmezett 777-es jogosultságokkal.

Két módja van az umask beállításának megváltoztatására: minden felhasználóra és egyes felhasználókra. Ha umask-ot szeretne beállítani minden felhasználó számára, győződjön meg arról, hogy az umask paraméter figyelembe van véve a shell környezeti fájlok indításakor, mint az /etc/profile-ban meg van adva. A megfelelő megközelítés egy umask.sh nevű shell szkript létrehozása az /etc/profile.d könyvtárban, és az umask, amelyet használni szeretne, megadása ebben a shell szkriptben. Ha ebben a fájlban megváltozik az umask, az a szerverre bejelentkező összes felhasználóra vonatkozik.
Alternatív megoldás az umask beállítása az /etc/profile és a kapcsolódó fájlok módosítása, ahol az összes bejelentkező felhasználóra vonatkozik, a .profile nevű fájl beállításainak módosítása, amelyet a felhasználó saját otthoni könyvtárában hoznak létre.
Ezek a fájlban alkalmazott beállítások csak egy adott felhasználóra vonatkoznak; ezért ez egy jó módszer, ha részletesebb beállításokra van szüksége. Személy szerint nagyon kedvelem ezt a funkciót, hogy megváltoztassam a root felhasználó alapértelmezett umask értékét 027-re, míg a normál felhasználók az alapértelmezett 022-es umask-kal dolgoznak.
A fájlban megadott beállítások csak egy adott felhasználóra vonatkoznak; ezért ez egy jó módszer, ha részletesebb beállításokra van szüksége. Személy szerint ezt a funkciót szeretem, hogy megváltoztassam a root felhasználó alapértelmezett umask értékét 027-re, míg a normál felhasználók az alapértelmezett 022-es umaskkal dolgoznak.
A felhasználói attribútumokkal való munka
Ez a Linux jogokkal foglalkozó záró szakasz.
A jogosultságokkal való munka során mindig van kapcsolat a felhasználói vagy csoportobjektum és a fájlra vagy könyvtárra vonatkozó jogosultságok között. A Linux szerverek fájlvédelmének alternatív módszere az attribútumok kezelése.
Az attribútumok függetlenül működnek attól, hogy ki hozzáfér a fájlhoz.
Mint az ACL esetében, az attribútumokhoz szükség lehet a következő paraméter aktiválására mount.
Ez egy lehetőség user_xattr. Ha „operation not supported” üzenetet kap, amikor a felhasználói attribútumokkal dolgozik, győződjön meg róla, hogy a paraméter be van állítva a mount fájlban /etc/fstab.
Sok attribútum dokumentálva van. Néhány attribútum elérhető, de még nem valósult meg. Ne használja őket; nem hoznak hasznot.
Az alábbiakban a leghasznosabb attribútumok találhatók, amelyeket alkalmazhat:
A Ez az attribútum garantálja, hogy a fájl elérési ideje nem változik.
Általában, amikor a fájlt megnyitják, a fájl elérési idejét a fájl metaadataiban rögzíteni kell. Ez negatív hatással van a teljesítményre; ezért a rendszeresen elérhető fájlokhoz az attribútum A használható ennek a funkciónak a letiltására.
a Ez az attribútum lehetővé teszi a fájlok hozzáadását, de azok törlését nem.
c Ha olyan fájlrendszert használ, amely támogatja a kötet szintű tömörítést, ez az attribútum garantálja, hogy a fájl tömörítve legyen, amikor a tömörítési mechanizmus először aktiválódik.
D Ez az attribútum biztosítja, hogy a fájlokban végrehajtott változtatások azonnal a lemezen íródjanak, nem pedig először a gyorsítótárba. Ez hasznos attribútum fontos adatbázis fájlok esetében, amely biztosítja, hogy ezek ne vesszenek el a fájlrendszer gyorsítótára és a merevlemez között.
d Ez az attribútum biztosítja, hogy a fájl ne kerüljön mentésre a mentési eszközzel, ahol a dump utility használatban van.
I Ez az attribútum bekapcsolja az indexelést a könyvtár számára, amelyben aktiválva van. Ez gyorsabb hozzáférést biztosít a fájlokhoz olyan primitív fájlrendszerekben, mint az Ext3, amelyek nem használnak B-fa adatbázist a fájlokhoz való gyors hozzáférés érdekében.
i Ez a tulajdonság a fájlt módosíthatatlanná teszi. Ezért a fájlba nem lehet módosításokat végezni, ami hasznos azokhoz a fájlokhoz, amelyek további védelmet igényelnek.
j Ez a tulajdonság biztosítja, hogy az ext3 fájlrendszerben a fájl először a naplóba kerül rögzítésre, majd a merevlemezen a blokkokba.
s A blokkok 0-ra való felülírása, ahol a fájl tárolva volt, a fájl törlése után. Ez biztosítja, hogy a fájl helyreállítása lehetetlen legyen, miután törölték.
), csoport ( Ez a tulajdonság megőrzi a törlésről szóló információkat. Ez lehetővé teszi, hogy egy hasznos segédprogramot fejlesszenek, amely ezen információk felhasználásával helyreállítja a törölt fájlokat.
Ha szeretné alkalmazni a tulajdonságokat, használhatja a következő parancsot: chattr. Például használja a következőt: chattr +s somefile, hogy a tulajdonságokat alkalmazza a somefile-ra. Szeretné eltávolítani a tulajdonságot? Akkor használja a következőt: chattr -s somefile, és ez eltávolításra kerül. Az összes aktuálisan alkalmazott tulajdonság áttekintéséhez használja a következő parancsot: lsattr.
Összefoglaló
Ebben a cikkben megtanulta, hogyan kell dolgozni a jogosultságokkal. Olvasott a három alapvető jogosultságról, a kiterjesztett jogosultságokról és arról, hogyan lehet ACL-listákat alkalmazni a fájlrendszerben. Ezenkívül megismerte, hogyan kell használni a umask paramétert a rendszer alapértelmezett jogosultságainak alkalmazásához. A cikk végén megtanulta, hogyan alkalmazhatók a felhasználó által kiterjesztett tulajdonságok a fájlrendszer további biztonsági rétegének biztosításához.
Ha tetszett ez a fordítás, kérlek jelezd kommentben. Nagyobb motivációt jelent, hogy hasznos fordításokat készíthessek.
A cikkben néhány elírást és nyelvtani hibát javítottam. Csökkentettem néhány terjengős bekezdést kisebbekre a könnyebb olvashatóság érdekében.
Ahelyett, hogy azt írtam volna: „Csak az alkalmazhat végrehajtási jogosultságot, akinek adminisztratív jogai vannak a könyvtárban.”, átírtam „Csak az alkalmazhat végrehajtási jogosultságot, akinek írási jogai vannak a könyvtárban.”, ami helyesebb lesz.
Köszönöm a megjegyzéseit. .
Kicseréltem:
Ha nem ön az aktuális felhasználó birtokosa, a shell ellenőrzi, hogy tagja vagy-e a fájl csoportjának, amely szintén a fájl csoportja.A következőre:
Ha Ön nem a fájl tulajdonosa, a shell ellenőrzi, hogy Ön tagja-e annak a csoportnak, amely jogosultsággal rendelkezik a fájlhoz. Ha Ön annak a csoportnak a tagja, akkor azon jogosultságokkal fér hozzá a fájlhoz, amelyeket a csoport számára beállítottak, és a shell leállítja az ellenőrzést.Köszönöm a megjegyzést.
Forrás: habr.com
