Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

12. diel - Linuxový terminál (Bash) - Správa skupín a ACL

V minulej lekcii, Linuxový terminál (Bash) - Správa užívateľov , sme sa naučili pracovať s najdôležitejšími príkazmi na vytváranie a následnú správu užívateľských účtov.

V dnešnej lekcii sa naučíme vytvárať a spravovať skupiny v Linuxe. Následne si ukážeme, ako efektívne prideľovať špecifické oprávnenia jednotlivým užívateľom.

Skupiny v Linuxe

V Linuxe existujú dva typy skupín, ktorými môže byť užívateľ členom:
  • Primárna skupina - Každý užívateľ musí byť členom práve jednej primárnej skupiny. Tá je potom automaticky priradená ku všetkým súborom a adresárom, ktoré užívateľ vytvorí. Názov skupiny je zvyčajne zhodný s menom používateľa.
  • Sekundárna skupina - Užívateľ môže byť členom až 32 sekundárnych skupín. Tie sa využívajú na pridelenie vybraných oprávnení množine užívateľov.

Rovnako ako zoznam užívateľov, tak aj zoznam skupín je v Linuxe zapisovaný do súboru. Operačný systém zapisuje všetky skupiny do súboru group, ktorý nájdeme v adresári /etc. Poďme súbor otvoriť a pozrieť sa, aké máme v systéme skupiny:

less /etc/group

Štruktúra súboru by nám mala byť povedomá. Na každom riadku nájdeme práve jednu skupinu a každý riadok sa skladá z niekoľkých informácií oddelených dvojbodkou (:). Ich význam je nasledujúci:

root x 0
Meno skupiny Heslo skupiny ID skupiny (GID)
Heslo skupiny je v dnešnej dobe považované za bezpečnostný problém, a tak sa odporúča štandardne nepoužívať.

Pokiaľ by sme chceli zistiť, v ktorých skupinách sme členmi, zadáme do terminálu príkaz:

groups

Po zadaní príkazu uvidíme výpis podobný tomuto:

itnetwork adm dialout cdrom floppy sudo audio dip video plugdev netdev

Na prvej pozícii je uvedená primárna skupina, ktorej názov je zhodný s menom užívateľa. Ďalej nasledujú sekundárne skupiny prideľujúce ďalšie oprávnenia užívateľovi itnetwork.

Ak zadáme meno užívateľa ako prvý parameter príkazu groups, vypíšeme zoznam skupín daného užívateľa.

Skupina sudo

Vo výpise príkazu groups si môžeme všimnúť, že jednou zo sekundárnych skupín je sudo. Členstvo v tejto skupine nám umožňuje používať rovnomenný príkaz sudo a teda využívať oprávnenie užívateľa root.

V Ubuntu je náš účet, vytvorený pri inštalácii, automaticky pridaný do tejto skupiny. V iných distribúciách musíme užívateľov do skupiny najskôr pridať:

sudo usermod -a -G sudo jmeno_uzivatele

Vytvorenie skupiny

Začneme tým, že si príkazom groupadd vytvoríme novú skupinu redactors. Do terminálu napíšeme:
sudo groupadd redactors

Skupina redactors nám bude združovať všetky spoločné oprávnenia pre užívateľov, ktorí sú redaktori.

Za určitých okolností môžeme vyžadovať vytvorenie novej skupiny so špecifickým GID. Pre vytvorenie skupiny redactors s GID 2022, zadáme do terminálu:

sudo groupadd -g 2022 redactors

Ak bude skupina s týmto GID v systéme existovať, príkaz vypíše chybové hlásenie a skupinu nevytvorí.

Nastavenie skupiny

Každú skupinu môžeme ďalej spravovať, napríklad zmeniť jej názov, zmeniť jej GID či nastaviť heslo. Na vykonanie týchto akcií slúži príkaz groupmod a niekoľko prepínačov.

Zmena názvu

Nový názov editors pre skupinu redactors nastavíme prostredníctvom prepínača -n:
groupmod -n editors redactors

Zmena GID

Zmenu GID nevykonávame príliš často, ale môže nastať situácia, ktorá bude túto zmenu vyžadovať. Nové GID 5050 nastavíme s využitím prepínača -g:
groupmod -g 5050 editors

Nastavenie hesla

Heslo pre skupinu nie je bezpečné a odporúča sa nepoužívať. Pre ukážku si však skúsme nastaviť heslo 28f36e8d6284f49 pre skupinu editors:
groupmod -p 28f36e8d6284f49 editors

Odstránenie skupiny

Na odstránenie skupiny máme k dispozícii príkaz groupdel:
sudo groupdel editors

ACL v Linuxe

Ak budeme spravovať firemný server, zistíme, že prideľovať práva pomocou skupín je veľmi ťažkopádne. Vo firme obvykle máme desiatky či stovky zamestnancov a každý z nich potrebuje prístup iba k vybraným súborom. Tento problém rieši ACL (Access Control List), ktorý umožňuje rozšírenú správu práv jedného používateľa.

Príkazom adduser si vytvoríme dvoch nových užívateľov david a thomas. Následne sa prepneme na užívateľa david:

su david

Skúsime si vypísať obsah domovského adresára užívateľa thomas:

ls /home/thomas

Namiesto obsahu daného adresára však dostaneme chybové hlásenie: ls cannot open directory '/home/thomas': Permission denied.

Keby sme pridelenie práv vyriešili vytvorením spoločnej skupiny, hrozilo by riziko, že neskôr zabudneme význam skupiny a umožníme tak prístup aj inej osobe.

Zobrazenie prístupu

Príkazom getfacl zobrazíme názov súboru, jeho vlastníka, skupinu a aktuálne nastavenie ACL. Skúsme si zobraziť ACL pre domovský adresár užívateľa thomas:
getfacl /home/thomas

Výstup príkazu vypíše oprávnenie adresára /home/thomas:

# file: thomas
# owner: thomas
# group: thomas
user::rwx
group::r-x
other::---

Nastavenie prístupu

Na nastavenie prístupu jednotlivým užívateľom alebo skupinám slúži setfacl. Teraz pridáme užívateľovi david práva na spustenie a čítanie adresára /home/thomas:
sudo setfacl -m u:david:r-x /home/thomas

Za prepínačom -m nasleduje trojica parametrov oddelených dvojbodkou (:). Na prvej pozícii zadáme typ záznamu:

  • u - user (užívateľ),
  • g - skupina (skupina),
  • o - other (ostatné),
  • a m - maska (maska).

Nasleduje názov skupiny alebo meno používateľa, ktorému chceme práva prideliť. Na tretiu pozíciu už zadáme iba konkrétne oprávnenie. Posledným parametrom príkazu je súbor či adresár, ktorému ACL nastavujeme.

Teraz príkazom getfacl overíme, že vo výpise pribudol riadok user:david:rx:

# file: thomas
# owner: thomas
# group: thomas
user::rwx
user:david:r-x
group::r-x
other::---

Maska ACL

Po pridelení práv užívateľovi david si vo výpise príkazu getfacl môžeme všimnúť nový riadok mask. Maska nám v tomto prípade určuje maximálne možné práva. Pokiaľ užívateľovi david nastavíme plné práva a následne zmeníme masku:
sudo setfacl -m m::r-x /home/thomas

Užívateľ david síce bude mať práva na zápis, ale nebude mu to nič platné.

Zamedzenie prístupu

Oprávnenie danému užívateľovi odoberieme príkazom setfacl s využitím prepínača -x:
sudo setfacl -x u:david /home/thomas

To je pre dnešnú lekciu všetko.

V budúcej lekcii sa naučíme čo je to archivácia, kompresia a komprimácia. Ukážeme si ako archivovať súbory programom tar a ako zmenšiť ich veľkosť nástrojmi gzip, bzip2 a zips.


 

Predchádzajúci článok
Linuxový terminál (Bash) - Správa užívateľov
Všetky články v sekcii
Základy Linuxu
Preskočiť článok
(neodporúčame)
Linuxový terminál (Bash) - archivácia a kopresia
Článok pre vás napísal Václav Franz
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity