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 znakx./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ý) aleboadduser(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
usermodumožňuje meniť meno, UID, pridávať užívateľa do skupín alebo uzamknúť účet; správa hesiel a expirácie prebieha cezpasswdachage. - Zrušenie účtu:
userdelodstraň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,groupmodagroupdelslúžia na vytváranie, úpravu a mazanie skupín. - Členstvo v skupinách: pomocou
gpasswdalebousermod -aGsa užívatelia pridávajú do doplnkových skupín; aktuálne členstvo sa kontroluje príkazomid. - 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/sudoersa/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:
getfaclna zobrazenie asetfaclna ú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
chownachgrpmenia 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,quotaarepquotaslúžia na správu a kontrolu kvót. - Nemenné atribúty: príkazy
chattr +ialsattrumožň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-passwordalebono) 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.