Správa užívateľov a skupín v Linuxe: základný prehľad

Význam správy užívateľov a oprávnení v Linuxe

Správa užívateľov a oprávnení v Linuxe určuje kto, čo, kde a ako môže vykonávať v systéme rôzne operácie. Zahŕňa správu identity užívateľov a skupín, riadenie prístupu k súborom a procesom, auditné mechanizmy, delegovanie práv a rozšírené bezpečnostné nástroje. Dobre navrhnutý model minimalizuje následky bezpečnostných incidentov, obmedzuje riziko laterálneho pohybu útočníka a zvyšuje spoľahlivosť a bezpečnosť prevádzky systému.

Identita v Linuxe: užívatelia a skupiny

  • UID a GID: jedinečné číselné identifikátory určujú vlastníctvo objektov a oprávnenia. Systémový užívateľ root disponuje UID 0 a neobmedzenými právami.
  • Primárna a doplnková skupina: každý užívateľ má pridelenú jednu primárnu skupinu (GID) a môže byť členom viacerých doplnkových skupín, čo umožňuje jemnejšie riadenie prístupu.
  • Typy účtov: rozlišujú sa interaktívne (ľudské) účty, systémové a servisné účty bez interaktívneho prihlásenia, ako aj dočasné či strojové identity.

Databáza užívateľských účtov a skupín

  • /etc/passwd: slúži na mapovanie užívateľských mien na UID a uchováva základné atribúty ako domovský adresár či príkazový shell. Heslá už nie sú priamo uložené, namiesto nich sa uvádza znak x.
  • /etc/shadow: obsahuje šifrované heslá a parametre ich expirácie; prístup je z bezpečnostných dôvodov obmedzený na užívateľa root.
  • /etc/group: definuje skupiny, ich členstvo, GID a doplnkové metadáta.

Životný cyklus užívateľa: vytváranie, úpravy a zrušenie účtu

  • Vytváranie účtu: nástroje ako useradd (nízkoúrovňový) alebo adduser (interaktívny skript) zabezpečujú založenie užívateľa, vrátane vytvorenia domovského priečinka, inicializácie podľa šablóny (/etc/skel), nastavenia shellu a skupín.
  • Úprava účtu: príkaz usermod umožňuje meniť meno, UID, pridávať užívateľa do skupín alebo uzamknúť účet; správa hesiel a expirácie prebieha cez passwd a chage.
  • Zrušenie účtu: userdel odstraňuje užívateľa so všetkými nastaveniami; je možné vymazať aj domovský adresár a poštu. Väčšinou sa však UID/GID mapy zachovávajú kvôli vlastníctvu existujúcich súborov.

Správa skupín: vytváranie, úpravy a členstvo

  • Práca so skupinami: príkazy groupadd, groupmod a groupdel slúžia na vytváranie, úpravu a mazanie skupín.
  • Členstvo v skupinách: pomocou gpasswd alebo usermod -aG sa užívatelia pridávajú do doplnkových skupín; aktuálne členstvo sa kontroluje príkazom id.
  • Role-based prístup: široko používaný prístup, keď sú pracovné role, napríklad dev, ops, dba, backup, mapované na skupiny, čo umožňuje ľahšiu správu oprávnení užívateľov.

Přihlašování a autentizace: PAM a NSS

  • PAM (Pluggable Authentication Modules): modulárny systém zabezpečujúci autentizáciu, autorizáciu a účtovníctvo; konfigurovateľné moduly s pravidlami, ktoré určujú správanie podľa tzv. flagov (required, sufficient, requisite, optional).
  • NSS (Name Service Switch): konfigurácia zdrojov identít a hesiel (súbory, LDAP, SSSD) s určeným poradím vyhľadávania v /etc/nsswitch.conf.
  • Politiky hesiel: zahŕňajú požiadavky na dĺžku, komplexnosť, históriu hesiel a expirácie; ochrana proti opakovaným neúspešným pokusom o prihlásenie cez moduly ako pam_tally2 alebo pam_faillock; podpora viacfaktorovej autentizácie (MFA) pomocou TOTP, U2F alebo WebAuthn.

Delegovanie oprávnění pomocí su, sudo a polkit

  • su: umožňuje prepnutie identity, najčastejšie na užívateľa root, vyžaduje zadanie hesla cieľového účtu.
  • sudo: poskytuje granularitu na úrovni jednotlivých príkazov a aliasov; zaznamenáva auditné záznamy, spravuje časové obmedzenia platnosti oprávnení a podmienky spúšťania; konfigurácia sa vykonáva v súboroch /etc/sudoers a /etc/sudoers.d.
  • polkit: moderný systém na jemné riadenie prístupových práv pre D-Bus služby a desktopové akcie, využíva pravidlá založené na identite používateľa a kontexte aplikácie.

POSIX oprávnenia: model vlastníka, skupiny a ostatných

  • Bitová maska rwx: základné oprávnenia čítania (r), zápisu (w) a spustenia (x) sa definujú pre vlastníka, skupinu a ostatných používateľov.
  • Umask: predvolená maska, ktorá obmedzuje oprávnenia pri vytváraní nových súborov a adresárov; jej nastavenie môže byť rôzne pre systémové služby a interaktívne prostredie.
  • Špeciálne bity: setuid a setgid umožňujú spúšťanie programov s právami vlastníka alebo skupiny; sticky bit zabezpečuje ochranu súborov pred odstránením v zdieľaných adresároch, ako napríklad /tmp.

Rozšírené ACL (Access Control Lists) pre jemné nastavenie oprávnení

  • POSIX ACL: poskytujú detailnejšie riadenie prístupu než tradičný model s jednou skupinou; umožňujú definovať oprávnenia pre viacero individálnych používateľov a skupín, s možnosťou dedičnosti cez predvolené ACL pre adresáre.
  • Nástroje: getfacl na zobrazenie a setfacl na úpravu ACL; treba dbať na súhru s klasickými permission bitmi a nastavením umask.
  • Využitie: často sa používajú v zdieľaných projektových adresároch medzi tímami alebo pre dočasnú eskaláciu prístupových práv bez zmeny skupiny.

Správa vlastníctva, diskových kvót a atribútov súborov

  • Vlastníctvo: príkazy chown a chgrp menia vlastníka a skupinu súborov; pri migrácii údajov alebo v kontajneroch je potrebné správne mapovať UID a GID.
  • Diskové kvóty: obmedzenia na spotrebu priestoru na disku pre užívateľov a skupiny; nástroje ako edquota, quota a repquota slúžia na správu a kontrolu kvót.
  • Nemenné atribúty: príkazy chattr +i a lsattr umožňujú nastaviť súbory ako nemenné, čím sa zabrání ich zmene alebo odstráneniu pre zvýšenie bezpečnosti.

Linux capabilities: rozdelenie práv root používateľa

Model capability rozkladá tradičné práva používateľa root na množinu menších, izolovaných schopností, napríklad CAP_NET_BIND_SERVICE pre viazanie na sieťové porty alebo CAP_SYS_ADMIN pre administratívne operácie. Vďaka tomu je možné spustiť procesy s minimálnymi nevyhnutnými právami a znížiť tak riziko zneužitia v prípade kompromitácie. Správa capabilities sa vykonáva nástrojmi setcap a getcap, pričom moderné systémy umožňujú nastavenie tzv. ambient capabilities v rámci systemd služieb.

Mandatory Access Control: SELinux a AppArmor

  • SELinux: komplexný bezpečnostný framework založený na politikách, ktorý definuje kontext procesov a objektov podľa typov, rolí a domén; režimy prevádzky sú enforcing, permissive a disabled. Obsahuje užitočné auditné funkcie a možnosť dynamického ladenia cez booleans.
  • AppArmor: profilový model s pravidlami orientovanými na cesty k súborom; ľahšie sa spravuje a je vhodný najmä pre per-aplikácie obmedzenia.
  • Zásada: MAC prístupová kontrola môže ďalej obmedziť prístup aj tam, kde to povolujú POSIX práva, čím zvyšuje bezpečnosť a zabraňuje laterálnej eskalácii oprávnení.

Sieťový prístup a vzdialená autentizácia

  • SSH: prednostne sa odporúča používať autentizáciu cez verejno-súkromné kľúče (PubkeyAuthentication yes), obmedziť prihlásenie root užívateľa (PermitRootLogin prohibit-password alebo no) a definovať restriktívne povolené užívateľské alebo skupinové prístupy (AllowUsers / AllowGroups).
  • NSS a PAM: integrácia s rôznymi modulmi na autentizáciu používateľov, napríklad LDAP, Kerberos alebo RADIUS, umožňuje centralizovanú správu identít a jednotné prihlasovacie údaje v rozľahlých prostrediach.
  • VPN a šifrované spojenia: zabezpečenie vzdialeného prístupu prostredníctvom protokolov ako OpenVPN alebo WireGuard, ktoré dopĺňajú autentizačné mechanizmy a chránia komunikáciu pred zachytením alebo manipuláciou.

Správa užívateľov a skupín v Linuxe predstavuje základný kameň pre bezpečné a efektívne fungovanie systému. Komplexné nástroje a mechanizmy, od základných práv cez rozšírené ACL, capabilities, až po moderné bezpečnostné rámce ako SELinux a AppArmor, umožňujú detailnú kontrolu a ochranu systémových zdrojov.

Pre správcu systému je dôležité nielen poznať tieto nástroje, ale aj ich správne kombinovať podľa konkrétnych požiadaviek prostredia, aby sa minimalizovalo riziko zneužitia a zabezpečila stabilita a dostupnosť služieb.