Povolenia v systéme Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Ahojte všetci. Toto je preklad článku z knihy RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 a EX300.

TAM: Dúfam, že článok bude užitočný nielen pre začiatočníkov, ale pomôže aj skúsenejším správcom zefektívniť ich znalosti.

Tak poďme.

Povolenia v systéme Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Na prístup k súborom v systéme Linux sa používajú povolenia. Tieto povolenia sú priradené trom objektom: vlastník súboru, vlastník skupiny a ďalší objekt (teda všetci ostatní). V tomto článku sa dozviete, ako použiť povolenia.

Tento článok začína prehľadom základných pojmov, po ktorom nasleduje diskusia o špeciálnych povoleniach a zoznamoch riadenia prístupu (ACL). Na konci tohto článku sa zaoberáme nastavením predvolených povolení pomocou umask, ako aj správou rozšírených atribútov používateľa.

Správa vlastníctva súborov

Pred diskusiou o povoleniach by ste si mali byť vedomí úlohy vlastníka súboru a adresára. Vlastníctvo súborov a adresárov je životne dôležité pre prácu s povoleniami. V tejto časti sa najskôr dozviete, ako môžete vidieť vlastníka. Potom sa dozviete, ako zmeniť vlastníka skupiny a používateľa pre súbory a adresáre.

Zobrazenie vlastníka súboru alebo adresára

V Linuxe má každý súbor a každý adresár dvoch vlastníkov: používateľa a vlastníka skupiny.

Títo vlastníci sa nastavia pri vytvorení súboru alebo adresára. Používateľ, ktorý vytvorí súbor, sa stane vlastníkom tohto súboru a primárna skupina, do ktorej ten istý používateľ patrí, sa tiež stane vlastníkom tohto súboru. Ak chcete zistiť, či máte ako používateľ povolenie na prístup k súboru alebo adresáru, shell skontroluje vlastníctvo.

To sa deje v nasledujúcom poradí:

  1. Shell skontroluje, či ste vlastníkom súboru, ku ktorému chcete získať prístup. Ak ste vlastníkom, získate povolenia a shell prestane kontrolovať.
  2. Ak nie ste vlastníkom súboru, shell skontroluje, či ste členom skupiny, ktorá má oprávnenia na súbor. Ak ste členom tejto skupiny, budete k súboru pristupovať s povoleniami, ktoré skupina nastavila, a shell prestane kontrolovať.
  3. Ak nie ste používateľom ani vlastníkom skupiny, máte práva iných používateľov (Iní).

Ak chcete zobraziť priradenia aktuálneho vlastníka, môžete použiť príkaz ls -l. Tento príkaz zobrazuje používateľa a vlastníka skupiny. Nižšie vidíte nastavenia vlastníka pre adresáre v adresári /home.

[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

S príkazom ls môžete zobraziť vlastníka súborov v danom adresári. Niekedy môže byť užitočné získať zoznam všetkých súborov v systéme, ktorých vlastníkom je daný používateľ alebo skupina. Na to môžete použiť nájsť. Argumentovať nájsť užívateľa možno použiť na tento účel. Napríklad nasledujúci príkaz uvádza zoznam všetkých súborov, ktoré vlastní používateľ linda:

find / -user linda

Môžete tiež použiť nájsť na vyhľadávanie súborov, ktorých vlastníkom je určitá skupina.

Napríklad nasledujúci príkaz vyhľadá všetky súbory patriace do skupiny užívatelia:

find / -group users

Zmena vlastníctva

Ak chcete použiť príslušné povolenia, prvá vec, ktorú treba zvážiť, je vlastníctvo. Existuje na to príkaz chown. Syntax tohto príkazu je ľahko zrozumiteľná:

chown кто что

Napríklad nasledujúci príkaz zmení vlastníka adresára /home/account na používateľa linda:

chown linda /home/account

Tím chown má niekoľko možností, z ktorých jedna je obzvlášť užitočná: -R. Môžete hádať, čo to robí, pretože táto možnosť je dostupná aj pre mnoho ďalších príkazov. To vám umožní rekurzívne nastaviť vlastníka, čo vám umožní nastaviť vlastníka aktuálneho adresára a všetkého pod ním. Nasledujúci príkaz zmení vlastníctvo adresára /home a všetkého pod ním na používateľa linda:

Teraz majitelia vyzerajú takto:

[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

Poď robiť:

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

Používateľ lisa sa teraz stal vlastníkom adresára účtu:

[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

Zmeňte vlastníka skupiny

Existujú dva spôsoby, ako zmeniť vlastníctvo skupiny. Môžete to urobiť pomocou chown, ale existuje špeciálny príkaz s názvom chgrpto robí prácu. Ak chcete použiť príkaz chown, použiť . alebo : pred názvom skupiny.

Nasledujúci príkaz zmení ľubovoľného vlastníka skupiny /home/account na skupinu účtov:

chown .account /home/account

môžeš použiť chown zmeniť vlastníka používateľa a/alebo skupiny niekoľkými spôsobmi. Tu je niekoľko príkladov:

  • chown lisa myfile1 nastaví používateľa lisa ako vlastníka súboru myfile1.
  • chown lisa.sales myfile nastaví používateľa lisa ako vlastníka súboru myfile a tiež nastaví skupinu predajcov ako vlastníka toho istého súboru.
  • chown lisa:sales myfile rovnaký ako predchádzajúci príkaz.
  • chown .predaj môj súbor nastaví predajnú skupinu ako vlastníka myfile bez zmeny vlastníka používateľa.
  • chown:sales myfile rovnaký ako predchádzajúci príkaz.

Môžete použiť príkaz chgrpzmeniť vlastníka skupiny. Zvážte nasledujúci príklad, kde môžete použiť chgrp nastaviť vlastníka adresára účtov na skupinu predajcov:

chgrp .sales /home/account

Ako s chown, môžete použiť možnosť -R с chgrp, ako aj rekurzívne zmeniť vlastníka skupiny.

Pochopenie predvoleného vlastníka

Možno ste si všimli, že keď používateľ vytvorí súbor, použije sa predvolené vlastníctvo.
Používateľ, ktorý súbor vytvorí, sa automaticky stane vlastníkom tohto súboru a primárna skupina tohto používateľa sa automaticky stane vlastníkom tohto súboru. Zvyčajne je to skupina, ktorá je uvedená v súbore /etc/passwd ako primárna skupina používateľa. Ak je však používateľ členom viac ako jednej skupiny, môže zmeniť účinnú primárnu skupinu.

Na zobrazenie aktuálnej efektívnej primárnej skupiny môže používateľ použiť príkaz skupiny:

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

Ak chce aktuálny užívateľ linda zmeniť efektívnu primárnu skupinu, použije príkaz newgrpza ním nasleduje názov skupiny, ktorú chce nastaviť ako novú efektívnu primárnu skupinu. Po použití príkazu newgrp primárna skupina bude aktívna, kým používateľ nezadá príkaz výjazd alebo sa neodhlásiť.

Nasledujúci text ukazuje, ako používateľ linda používa tento príkaz, pričom primárnou skupinou je predaj:

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

Po zmene efektívnej primárnej skupiny budú mať všetky nové súbory vytvorené používateľom túto skupinu ako vlastníka skupiny. Ak sa chcete vrátiť k pôvodnému nastaveniu primárnej skupiny, použite výjazd.

Aby bolo možné použiť príkaz newgrp, používateľ musí byť členom skupiny, ktorú chce použiť ako primárnu skupinu. Okrem toho je možné použiť skupinové heslo pre skupinu pomocou príkazu gpasswd. Ak používateľ použije príkaz newgrpale nie je členom cieľovej skupiny, shell vás vyzve na zadanie hesla skupiny. Po zadaní správneho hesla skupiny sa vytvorí nová účinná primárna skupina.

Správa základných práv

Systém povolení Linux bol vynájdený v 1970. rokoch XNUMX. storočia. Keďže výpočtové potreby boli v tých rokoch obmedzené, systém základných povolení bol dosť obmedzený. Tento systém povolení používa tri povolenia, ktoré možno použiť na súbory a adresáre. V tejto časti sa dozviete, ako tieto povolenia používať a meniť.

Pochopenie povolení na čítanie, zápis a vykonávanie

Tri základné povolenia vám umožňujú čítať, zapisovať a spúšťať súbory. Účinok týchto povolení sa líši pri použití na súbory alebo adresáre. V prípade súboru vám povolenie na čítanie dáva právo otvoriť súbor na čítanie. Preto si môžete prečítať jeho obsah, ale to znamená, že váš počítač môže súbor otvoriť a niečo s ním urobiť.

Programový súbor, ktorý potrebuje prístup ku knižnici, musí mať napríklad prístup na čítanie do tejto knižnice. Z toho vyplýva, že oprávnenie na čítanie je najzákladnejšie oprávnenie, ktoré potrebujete na prácu so súbormi.

Keď sa použije na adresár, čítanie vám umožní zobraziť obsah tohto adresára. Mali by ste si uvedomiť, že toto povolenie vám neumožňuje čítať súbory v adresári. Systém povolení Linux nepozná dedičnosť a jediný spôsob, ako čítať súbor, je použiť povolenia na čítanie tohto súboru.

Ako pravdepodobne tušíte, povolenie na zápis, ak sa použije na súbor, umožňuje zápis do súboru. Inými slovami, umožňuje vám meniť obsah existujúcich súborov. Nedovoľuje vám však vytvárať alebo odstraňovať nové súbory alebo meniť povolenia súborov. Ak to chcete urobiť, musíte dať povolenie na zápis do adresára, v ktorom chcete súbor vytvoriť. V adresároch vám toto povolenie tiež umožňuje vytvárať a mazať nové podadresáre.

Povolenie na spustenie je to, čo potrebujete na spustenie súboru. V predvolenom nastavení sa nikdy nenainštaluje, vďaka čomu je Linux takmer úplne imúnny voči vírusom. Povolenie na spustenie môže použiť iba osoba s oprávnením na zápis do adresára.

Nasleduje zhrnutie použitia základných povolení:

Povolenia v systéme Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Pomocou chmod

Príkaz sa používa na správu povolení. chmod... Použitím chmod môžete nastaviť oprávnenia pre používateľa (používateľa), skupiny (skupinu) a ostatných (ostatné). Tento príkaz môžete použiť v dvoch režimoch: relatívny režim a absolútny režim. V absolútnom režime sa na nastavenie základných oprávnení používajú tri číslice.

Povolenia v systéme Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Pri nastavovaní povolení vypočítajte hodnotu, ktorú potrebujete. Ak chcete nastaviť čítanie/zápis/spustenie pre používateľa, čítanie/spustenie pre skupinu a čítanie/spustenie pre ostatných v /somefile, potom použite nasledujúci príkaz chmod:

chmod 755 /somefile

Keď použijete chmod týmto spôsobom sú všetky aktuálne povolenia nahradené povoleniami, ktoré ste nastavili.

Ak chcete zmeniť povolenia vzhľadom na aktuálne povolenia, môžete použiť chmod v relatívnom režime. Použitím chmod v relatívnom režime pracujete s tromi indikátormi, ktoré označujú, čo chcete urobiť:

  1. Najprv zadajte, komu chcete zmeniť povolenia. Ak to chcete urobiť, môžete si vybrať medzi používateľmi (u), skupina (g) a ďalšie (o).
  2. Potom použijete príkaz na pridanie alebo odstránenie povolení z aktuálneho režimu alebo ich absolútne nastavíte.
  3. Na konci použijete r, w и xurčiť, ktoré povolenia chcete nastaviť.

Pri zmene povolení v relatívnom režime môžete preskočiť časť „do“ a pridať alebo odstrániť povolenia pre všetky objekty. Tento príkaz napríklad pridáva povolenie na spustenie pre všetkých používateľov:

chmod +x somefile

Pri práci v relatívnom režime môžete použiť aj zložitejšie príkazy. Tento príkaz napríklad pridá oprávnenie na zápis do skupiny a odstráni oprávnenie na čítanie pre ostatných:

chmod g+w,o-r somefile

Pri použití chmod -R o+rx /data nastavíte povolenie na spustenie pre všetky adresáre, ako aj súbory v adresári /data. Ak chcete nastaviť povolenie na spustenie iba pre adresáre a nie pre súbory, použite chmod -R o+ rX /data.

Veľké písmeno X zaisťuje, že súbory nezískajú povolenie na spustenie, pokiaľ súbor už nemá nastavené povolenie na spustenie pre niektoré objekty. Vďaka tomu je X inteligentnejší spôsob, ako sa vysporiadať s povoleniami na spustenie; tým sa vyhnete nastaveniu tohto povolenia na súbory, kde nie je potrebné.

Rozšírené práva

Okrem základných oprávnení, o ktorých ste práve čítali, má Linux aj sadu pokročilých oprávnení. Toto nie sú povolenia, ktoré ste nastavili predvolene, ale niekedy poskytujú užitočný doplnok. V tejto časti sa dozviete, čo sú a ako ich nastaviť.

Pochopenie rozšírených povolení SUID, GUID a Sticky Bit

Existujú tri pokročilé povolenia. Prvým z nich je povolenie na nastavenie identifikátora používateľa (SUID). V niektorých špeciálnych prípadoch môžete toto povolenie použiť na spustiteľné súbory. Používateľ, ktorý spúšťa spustiteľný súbor, štandardne spúšťa tento súbor s vlastnými povoleniami.

Pre bežných používateľov to zvyčajne znamená, že používanie programu je obmedzené. V niektorých prípadoch však používateľ potrebuje špeciálne povolenia iba na vykonanie konkrétnej úlohy.

Predstavte si napríklad situáciu, keď používateľ potrebuje zmeniť svoje heslo. Na to musí používateľ zapísať svoje nové heslo do súboru /etc/shadow. Do tohto súboru však nemôžu zapisovať používatelia bez oprávnenia root:

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

Povolenie SUID ponúka riešenie tohto problému. Obslužný program /usr/bin/passwd štandardne používa toto povolenie. To znamená, že pri zmene hesla sa užívateľ dočasne stane rootom, čo mu umožní zapisovať do súboru /etc/shadow. Môžete vidieť povolenie SUID s ls -l ako s v pozícii, kde by ste normálne očakávali, že uvidíte x pre vlastné povolenia:

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

Povolenie SUID môže vyzerať užitočne (a v niektorých prípadoch aj je), no zároveň je potenciálne nebezpečné. Ak sa nepoužije správne, môžete náhodne udeliť oprávnenia root. Preto ho odporúčam používať len s maximálnou opatrnosťou.

Väčšina správcov ho nikdy nebude musieť použiť; uvidíte ho len v niektorých súboroch, kde by ho mal operačný systém predvolene nastaviť.

Druhým špeciálnym povolením je identifikátor skupiny (SGID). Toto povolenie má dva účinky. Keď sa použije na spustiteľný súbor, dáva používateľovi, ktorý súbor spúšťa, oprávnenia vlastníka skupiny súboru. Takže SGID môže robiť viac-menej to isté ako SUID. Na tento účel sa však SGID prakticky nepoužíva.

Rovnako ako pri povolení SUID sa SGID používa na niektoré systémové súbory ako predvolené nastavenie.

Pri použití na adresár môže byť SGID užitočné, pretože ho môžete použiť na nastavenie predvoleného vlastníka skupiny pre súbory a podadresáre vytvorené v tomto adresári. Keď používateľ vytvorí súbor, jeho efektívna primárna skupina je štandardne nastavená ako vlastník skupiny pre tento súbor.

Toto nie je vždy veľmi užitočné, najmä preto, že používatelia Red Hat/CentOS majú svoju primárnu skupinu nastavenú na skupinu s rovnakým názvom ako používateľ a ktorej jediným členom je používateľ. V predvolenom nastavení sa teda súbory, ktoré používateľ vytvorí, budú zdieľať hromadne.

Predstavte si situáciu, že používatelia linda a lori pracujú v účtovníctve a sú členmi skupiny účet. Štandardne sú títo používatelia členmi súkromnej skupiny, ktorej sú jediným členom. Obaja používatelia sú však členmi skupiny účtov, ale aj ako sekundárny parameter skupiny.

Predvolená situácia je, že keď ktorýkoľvek z týchto používateľov vytvorí súbor, primárna skupina sa stane vlastníkom. Preto v predvolenom nastavení nemá linda prístup k súborom vytvoreným lori a naopak. Ak však vytvoríte zdieľaný skupinový adresár (povedzme /groups/account) a zabezpečíte, aby sa na tento adresár použilo povolenie SGID a že skupinový účet je nastavený ako vlastník skupiny pre tento adresár, všetky súbory vytvorené v tomto adresári a všetky z jeho podadresárov , predvolene získajte aj skupinový účet ako vlastníka skupiny.

Z tohto dôvodu je povolenie SGID veľmi užitočným povolením na nastavenie na verejných skupinových adresároch.

Povolenie SGID zobrazené vo výstupe ls -l ako s na pozícii, kde by ste normálne našli povolenie na spustenie skupiny:

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

Tretím zo špeciálnych povolení je lepkavý bit. Toto povolenie je užitočné na ochranu súborov pred náhodným vymazaním v prostredí, kde má viacero používateľov prístup k zápisu do rovnakého adresára. Ak sa použije lepivý bit, používateľ môže odstrániť súbor iba vtedy, ak je vlastníkom súboru alebo adresára, ktorý súbor obsahuje. Z tohto dôvodu sa používa ako predvolené povolenie pre adresár /tmp a môže byť užitočné aj pre adresáre verejných skupín.

Bez lepiaceho bitu, ak môže používateľ vytvárať súbory v adresári, môže tiež súbory z tohto adresára vymazať. V prostredí verejnej skupiny to môže byť nepríjemné. Predstavte si používateľov linda a lori, ktorí majú oprávnenia na zápis do adresára /data/account a tieto oprávnenia získajú tým, že sú členmi skupiny účtov. Preto môže linda vymazať súbory vytvorené lori a naopak.

Keď použijete lepivý bit, používateľ môže odstrániť súbory iba vtedy, ak je splnená jedna z nasledujúcich podmienok:

  • Používateľ je vlastníkom súboru;
  • Používateľ je vlastníkom adresára, v ktorom sa súbor nachádza.

Pri použití ls -l, môžete vidieť lepkavý kúsok ako t v pozícii, kde by ste normálne videli povolenie na vykonanie pre ostatných:

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

Uplatňovanie rozšírených práv

Na aplikáciu SUID, SGID a lepkavého bitu môžete tiež použiť chmod. SUID má číselnú hodnotu 4, SGID má číselnú hodnotu 2 a sticky bit má číselnú hodnotu 1.

Ak chcete použiť tieto povolenia, musíte pridať štvorciferný argument do chmod, ktorého prvá číslica odkazuje na špeciálne povolenia. Nasledujúci riadok napríklad pridá povolenie SGID do adresára a nastaví rwx pre používateľa a rx pre skupinu a ostatných:

chmod 2755 /somedir

Toto je dosť nepraktické, ak potrebujete vidieť aktuálne nastavené povolenia pred prácou chmod v absolútnom režime. (Vystavujete sa riziku prepísania povolení, ak to neurobíte.) Odporúčam teda spustiť v relatívnom režime, ak potrebujete použiť niektoré zo špeciálnych povolení:

  1. Na použitie SUID chmod u+s.
  2. Na použitie SGID chmod g+s.
  3. Na použitie priľnavého bitu chmod +t, za ktorým nasleduje názov súboru alebo adresára, pre ktorý chcete nastaviť povolenia.

V tabuľke je zhrnuté všetko, čo potrebujete vedieť o správe špeciálnych povolení.

Povolenia v systéme Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Príklad práce so špeciálnymi právami

V tomto príklade použijete špeciálne povolenia, aby ste členom skupiny uľahčili zdieľanie súborov v zdieľanom skupinovom adresári. Identifikačný bit priradíte nastavenému ID skupiny, ako aj priľnavý bit a uvidíte, že po ich nastavení sa pridajú funkcie, ktoré uľahčia členom skupiny spoluprácu.

  1. Otvorte terminál, kde ste používateľom linda. Pomocou príkazu môžete vytvoriť používateľa Linda, pridajte heslo passwd Linda.
  2. Pomocou príkazu vytvorte adresár /data v koreňovom adresári a podadresár /data/sales mkdir -p /data/sales... Vykonať cd /data/salesprejdite do obchodného adresára. Dokončiť dotkni sa linda1 и dotkni sa linda2vytvoriť dva prázdne súbory, ktoré vlastní linda.
  3. popraviť su-lisa na prepnutie aktuálneho používateľa na používateľa lisa, ktorý je tiež členom predajnej skupiny.
  4. popraviť cd /data/sales a z tohto adresára spustite ls -l. Uvidíte dva súbory, ktoré vytvoril používateľ linda a patria do skupiny linda. Dokončiť rm -f linda*. Tým sa odstránia oba súbory.
  5. popraviť dotkni sa lisa1 и dotkni sa lisa2na vytvorenie dvoch súborov, ktoré vlastní používateľ lisa.
  6. popraviť su- povýšiť svoje privilégiá na root.
  7. popraviť chmod g+s,o+t /data/predajna nastavenie bitu identifikátora skupiny (GUID), ako aj prilepovacieho bitu v zdieľanom skupinovom adresári.
  8. popraviť su-linda. Potom urobte dotkni sa linda3 и dotkni sa linda4. Teraz by ste mali vidieť, že dva súbory, ktoré ste vytvorili, vlastní predajná skupina, ktorá je vlastníkom skupiny adresára /data/sales.
  9. popraviť rm -rf lisa*. Lepkavý bit zabraňuje vymazaniu týchto súborov v mene používateľa linda, pretože nie ste vlastníkom týchto súborov. Upozorňujeme, že ak je používateľ linda vlastníkom adresára /data/sales, môže tieto súbory aj tak vymazať!

Správa ACL (setfacl, getfacl) v Linuxe

Aj keď vyššie uvedené rozšírené povolenia pridávajú užitočné funkcie k spôsobu, akým Linux narába s povoleniami, neumožňujú vám udeliť povolenia viac ako jednému používateľovi alebo skupine v tom istom súbore.

Túto funkciu ponúkajú zoznamy riadenia prístupu. Okrem toho umožňujú správcom komplexne nastaviť predvolené oprávnenia, pričom nastavené oprávnenia sa môžu líšiť od adresára k adresáru.

Pochopenie zoznamov prístupových práv

Aj keď podsystém ACL dodáva vášmu serveru skvelú funkčnosť, má jednu nevýhodu: nie všetky pomocné programy ho podporujú. Preto môžete pri kopírovaní alebo presúvaní súborov stratiť nastavenia ACL a váš zálohovací softvér nemusí zlyhať pri zálohovaní nastavení ACL.

Pomocný program tar nepodporuje ACL. Aby ste sa uistili, že nastavenia ACL sa pri vytváraní zálohy nestratia, použite hviezda namiesto dechtu. hviezda pracuje s rovnakými možnosťami ako decht; len pridáva podporu pre nastavenia ACL.

ACL môžete zálohovať aj pomocou getfacl, ktorý je možné obnoviť pomocou príkazu setfacl. Ak chcete vytvoriť zálohu, použite getfacl -R /adresár > súbor.acls. Ak chcete obnoviť nastavenia zo záložného súboru, použite setfacl --restore=file.acl.

Nedostatok podpory zo strany niektorých nástrojov by nemal byť problém. ACL sa často aplikujú na adresáre ako štrukturálne opatrenie a nie na jednotlivé súbory.
Preto ich nebude veľa, ale len niekoľko, aplikovaných na smart miestach v súborovom systéme. Preto je obnovenie pôvodných zoznamov prístupových práv, s ktorými ste pracovali, relatívne jednoduché, aj keď ich váš zálohovací softvér nepodporuje.

Príprava systému súborov pre zoznamy ACL

Skôr než začnete pracovať s ACL, možno budete musieť pripraviť váš súborový systém na podporu ACL. Pretože je potrebné rozšíriť metadáta súborového systému, v súborovom systéme nie je vždy predvolená podpora pre ACL. Ak sa pri nastavovaní ACL pre súborový systém zobrazí hlásenie „operácia nie je podporovaná“, váš súborový systém nemusí podporovať ACL.

Ak to chcete opraviť, musíte pridať možnosť acl mount v /etc/fstab, takže súborový systém je štandardne pripojený s podporou ACL.

Zmena a zobrazenie nastavení ACL pomocou setfacl a getfacl

Na nastavenie ACL potrebujete príkaz setfacl. Ak chcete zobraziť aktuálne nastavenia ACL, potrebujete getfacl. Tím ls -l nezobrazuje žiadne existujúce ACL; za zoznamom povolení sa zobrazuje iba znak +, čo znamená, že zoznamy prístupových práv sa vzťahujú aj na súbor.

Pred nastavením ACL je vždy dobré zobraziť aktuálne nastavenia ACL pomocou getfacl. V nižšie uvedenom príklade môžete vidieť aktuálne povolenia, ako sú zobrazené s ls -l, a tiež ako je zobrazené s getfacl. Ak sa pozriete dostatočne pozorne, uvidíte, že zobrazené informácie sú úplne rovnaké.

[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

V dôsledku vykonania príkazu getfacl nižšie môžete vidieť, že povolenia sú zobrazené pre tri rôzne objekty: používateľa, skupinu a ďalšie. Teraz pridajte zoznam prístupových práv, ktorý poskytne povolenia na čítanie a spustenie aj skupine predajcov. príkaz na to setfacl -mg:sales:rx /dir. V tomto tíme -m označuje, že je potrebné zmeniť aktuálne nastavenia ACL. Potom g:predaj:rx povie príkazu, aby nastavil čítanie-vykonávanie ACL (rx) pre skupinu (g) predaj. Nižšie vidíte, ako príkaz vyzerá, ako aj výstup príkazu getfacl po zmene aktuálnych nastavení ACL.

[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

Teraz, keď ste pochopili, ako nastaviť skupinový ACL, je ľahké porozumieť ACL pre používateľov a iných používateľov. Napríklad príkaz setfacl -mu:linda:rwx /data dáva oprávnenia používateľovi linda v adresári /data bez toho, aby sa stal vlastníkom alebo zmenil priradenie aktuálneho vlastníka.

Tím setfacl má veľa funkcií a možností. Jedna možnosť je obzvlášť dôležitá, parameter -R. Ak sa táto voľba použije, nastaví ACL pre všetky súbory a podadresáre, ktoré momentálne existujú v adresári, kde ste nastavili ACL. Pri zmene ACL pre existujúce adresáre sa odporúča vždy použiť túto voľbu.

Práca s predvolenými zoznamami ACL

Jednou z výhod používania ACL je, že môžete udeliť povolenia viacerým používateľom alebo skupinám v adresári. Ďalšou výhodou je, že môžete povoliť dedičnosť prácou s predvolenými zoznamami ACL.

Nastavením predvoleného ACL určíte povolenia, ktoré budú nastavené pre všetky nové položky vytvorené v adresári. Uvedomte si, že predvolený zoznam prístupových práv nemení povolenia na existujúce súbory a podadresáre. Ak ich chcete zmeniť, musíte pridať aj normálny zoznam prístupových práv!

Toto je dôležité vedieť. Ak chcete použiť ACL na konfiguráciu viacerých užívateľov alebo skupín na prístup k rovnakému adresáru, musíte ACL nastaviť dvakrát. Prvé použitie setfacl -R -mzmeniť ACL pre aktuálne súbory. Potom použite setfacl-md:postarať sa o všetky nové prvky, ktoré tiež vzniknú.

Ak chcete nastaviť predvolený ACL, stačí pridať možnosť d po opcii -m (na poradí záleží!). Tak použite setfacl -md:g:predaj:rx /dataak chcete, aby skupinový predaj čítal a spúšťal čokoľvek, čo sa kedy vytvorí v adresári /data.

Keď používate predvolené ACL, môže byť užitočné nastaviť ACL aj pre ostatných. Zvyčajne to nedáva veľký zmysel, pretože môžete zmeniť aj povolenia pre ostatných používateľov chmod. S čím sa však nedá robiť chmod, je určiť práva, ktoré musia byť udelené ostatným používateľom pre každý nový súbor, ktorý sa kedy vytvorí. Ak chcete ostatným zabrániť v získaní akýchkoľvek povolení na čokoľvek vytvorené v /data, napríklad použite setfacl -md:o::- /data.

ACL a normálne povolenia nie sú vždy dobre integrované. Problémy môžu nastať, ak na adresár použijete predvolený ACL, potom sa do tohto adresára pridajú položky a potom sa pokúsite zmeniť normálne povolenia. Zmeny, ktoré sa vzťahujú na bežné povolenia, sa neprejavia v prehľade ACL. Aby ste predišli problémom, najprv nastavte normálne povolenia, potom nastavte predvolené ACL (a potom sa ich snažte už nemeniť).

Príklad správy zvýšených práv pomocou ACL

V tomto príklade budete pokračovať s adresármi /data/account a /data/sales, ktoré ste vytvorili predtým. V predchádzajúcich príkladoch ste zaistili, že skupina predaja má povolenia na /data/sales a skupina účtov má povolenia na /data/account.

Najprv sa uistite, že skupina účtov získa oprávnenia na čítanie v adresári /data/sales a predajná skupina získa oprávnenia na čítanie v adresári /data/account.

Potom nastavíte predvolené ACL, aby ste sa uistili, že všetky nové súbory majú nastavené správne povolenia pre všetky nové položky.

  1. Otvorte terminál.
  2. popraviť setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. popraviť getfaclaby ste sa uistili, že povolenia boli nastavené tak, ako ste chceli.
  4. popraviť setfacl -md:g:account:rwx,g:sales:rx /data/salesna nastavenie predvoleného ACL pre predajný adresár.
  5. Pridajte predvolený ACL pre adresár /data/account pomocou setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. Pridaním nového súboru do /data/sales skontrolujte, či sú nastavenia ACL platné. Dokončiť dotknite sa /data/sales/newfile a vykonať getfacl /data/sales/newfile na kontrolu aktuálnych povolení.

Nastavenie predvolených povolení pomocou umask

Vyššie ste sa naučili pracovať s predvolenými zoznamami ACL. Ak nepoužívate ACL, existuje možnosť shellu, ktorá určuje predvolené povolenia, ktoré získate: umaskovať (reverzná maska). V tejto časti sa dozviete, ako zmeniť predvolené povolenia pomocou umaskovať.

Možno ste si všimli, že pri vytváraní nového súboru sú nastavené niektoré predvolené povolenia. Tieto povolenia sú určené nastavením umaskovať. Toto nastavenie prostredia platí pre všetkých používateľov pri prihlásení. V parametri umaskovať používa sa číselná hodnota, ktorá sa odpočítava od maximálnych oprávnení, ktoré možno pre súbor automaticky nastaviť; maximálne nastavenie pre súbory je 666 a pre adresáre 777.

Z tohto pravidla však platia určité výnimky. Nájdete tu kompletný prehľad nastavení umaskovať v tabuľke nižšie.

Z čísel použitých v umaskovať, ako v prípade číselných argumentov pre príkaz chmod, prvá číslica odkazuje na oprávnenia používateľa, druhá číslica na oprávnenia skupiny a posledná na predvolené oprávnenia nastavené pre ostatných. Význam umaskovať predvolená hodnota 022 dáva 644 pre všetky nové súbory a 755 pre všetky nové adresáre vytvorené na vašom serveri.

Kompletný prehľad všetkých číselných hodnôt umaskovať a ich výsledky v tabuľke nižšie.

Povolenia v systéme Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Jednoduchý spôsob, ako zistiť, ako funguje nastavenie umask, je nasledujúci: začnite s predvolenými povoleniami súboru nastavenými na 666 a odčítaním umask získate účinné povolenia. Urobte to isté pre adresár a jeho predvolené povolenia 777.

Existujú dva spôsoby, ako zmeniť nastavenie umask: pre všetkých používateľov a pre jednotlivých používateľov. Ak chcete nastaviť umask pre všetkých užívateľov, musíte zabezpečiť, aby sa nastavenie umask zohľadnilo pri spúšťaní súborov prostredia shell, ako je uvedené v /etc/profile. Správny prístup je vytvoriť shell skript s názvom umask.sh v adresári /etc/profile.d a špecifikovať umask, ktorý chcete použiť v tomto shell skripte. Ak sa v tomto súbore zmení umask, použije sa po prihlásení na server pre všetkých používateľov.

Alternatívou k nastaveniu umask cez /etc/profile a súvisiace súbory, kde platí pre všetkých prihlasujúcich sa užívateľov, je zmena nastavenia umask v súbore s názvom .profile, ktorý je vytvorený v domovskom adresári každého užívateľa.

Nastavenia použité v tomto súbore platia iba pre jednotlivých používateľov; preto je to dobrá metóda, ak potrebujete viac podrobností. Osobne sa mi páči táto funkcia na zmenu predvolenej masky pre používateľa root na 027, zatiaľ čo bežní používatelia bežia s predvolenou maskou 022.

Práca s rozšírenými používateľskými atribútmi

Toto je posledná časť o povoleniach systému Linux.

Pri práci s povoleniami vždy existuje vzťah medzi objektom používateľa alebo skupiny a povoleniami, ktoré majú objekty používateľa alebo skupiny pre súbor alebo adresár. Alternatívnou metódou ochrany súborov na serveri Linux je práca s atribútmi.
Atribúty vykonávajú svoju prácu bez ohľadu na používateľa, ktorý pristupuje k súboru.

Rovnako ako v prípade zoznamov ACL, atribúty súborov môžu potrebovať túto možnosť namontovať.

Toto je možnosť user_xattr. Ak sa pri práci s rozšírenými používateľskými atribútmi zobrazí hlásenie „operácia nie je podporovaná“, nezabudnite nastaviť parameter namontovať v /etc/fstab.

Mnohé atribúty sú zdokumentované. Niektoré atribúty sú dostupné, ale zatiaľ nie sú implementované. Nepoužívajte ich; nič ti neprinesú.

Nižšie sú uvedené najužitočnejšie atribúty, ktoré môžete použiť:

A Tento atribút zabezpečuje, že sa nezmení čas prístupu k súboru.
Zvyčajne pri každom otvorení súboru musí byť čas prístupu k súboru zaznamenaný v metadátach súboru. To negatívne ovplyvňuje výkon; takže pre súbory, ku ktorým sa pravidelne pristupuje, atribút A možno použiť na vypnutie tejto funkcie.

a Tento atribút vám umožňuje pridať, ale nie odstrániť súbor.

c Ak používate súborový systém, ktorý podporuje kompresiu na úrovni zväzku, tento atribút súboru zaisťuje, že súbor bude komprimovaný pri prvom zapnutí kompresného mechanizmu.

D Tento atribút zaisťuje, že zmeny v súboroch sa zapisujú na disk okamžite a nie ako prvé do vyrovnávacej pamäte. Toto je užitočný atribút dôležitých databázových súborov, aby ste sa uistili, že sa nestratia medzi vyrovnávacou pamäťou súborov a pevným diskom.

d Tento atribút zaisťuje, že súbor nebude uložený v zálohách, kde sa používa pomocný program výpisu.

I Tento atribút umožňuje indexovanie pre adresár, v ktorom je povolený. To poskytuje rýchlejší prístup k súborom pre primitívne súborové systémy ako Ext3, ktoré nepoužívajú databázu B-stromu na rýchly prístup k súborom.

i Tento atribút robí súbor nemenným. V súbore preto nie je možné vykonávať žiadne zmeny, čo je užitočné pri súboroch, ktoré potrebujú dodatočnú ochranu.

j Tento atribút zabezpečuje, že na súborovom systéme ext3 sa súbor najskôr zapíše do žurnálu a potom do dátových blokov na pevnom disku.

s Po odstránení súboru prepíšte bloky, v ktorých bol súbor uložený, na 0s. Tým sa zabezpečí, že súbor nebude možné po odstránení obnoviť.

u Tento atribút uchováva informácie o odstránení. To vám umožní vyvinúť nástroj, ktorý pracuje s týmito informáciami na záchranu odstránených súborov.

Ak chcete použiť atribúty, môžete použiť príkaz klábosiť. Napríklad použite chattr +s somefilepoužiť atribúty na nejaký súbor. Potrebujete odstrániť atribút? Potom použite chattr -s somefilea bude odstránený. Ak chcete získať prehľad o všetkých atribútoch, ktoré sú aktuálne aplikované, použite príkaz lsattr.

Zhrnutie

V tomto článku ste sa naučili pracovať s povoleniami. Dočítate sa o troch základných povoleniach, pokročilých povoleniach a o tom, ako aplikovať ACL na súborový systém. Tiež ste sa naučili, ako použiť možnosť umask na použitie predvolených povolení. Na konci tohto článku ste sa naučili, ako používať atribúty rozšírené používateľom na použitie ďalšej vrstvy zabezpečenia súborového systému.

Ak sa vám tento preklad páči, napíšte o ňom do komentárov. Bude väčšia motivácia robiť užitočné preklady.

Opravené niektoré preklepy a gramatické chyby v článku. Niektoré objemné odseky boli zmenšené na menšie pre lepšiu čitateľnosť.

Namiesto "Povolenie na vykonanie môže použiť iba niekto s administrátorskými právami na adresár." opravené na "Iba niekto s oprávneniami na zápis do adresára môže použiť oprávnenie na vykonanie.", čo by bolo správnejšie.

Ďakujem za komentáre berez.

Nahradené:
Ak nie ste vlastníkom používateľa, shell skontroluje, či ste členom skupiny, známej aj ako skupina súboru.

na:
Ak nie ste vlastníkom súboru, shell skontroluje, či ste členom skupiny, ktorá má oprávnenia na súbor. Ak ste členom tejto skupiny, budete k súboru pristupovať s povoleniami, ktoré skupina nastavila, a shell prestane kontrolovať.

ďakujem za Váš komentár CryptoPirate

Zdroj: hab.com

Pridať komentár