O víkendu probíhá konference OpenAlt 2025 (Stream). Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.
Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.
Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).
Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).
Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
PAM (Pluggable Authentication Modules) je sada knižníc, ktorá integruje viaceré nízko-úrovňové autentizačné mechanizmy do jedného API. Použitie stabilného API pomáha oddeliť detaily a spôsob autentizácie od programu, ktorý potrebuje overovať totožnosť užívateľov.
Pôvodne bol PAM vyvinutý v Sun Microsystems. V súčasnosti je podporovaný vo vačšine UNIXových systémov, napr. AIX, HP-UX, Solaris, Linux, FreeBSD, MacOS X a NetBSD. Pokiaľ viem, tak nie je podporovaný v Slackware a OpenBSD.
Keďže PAM uplatňuje modulárny princíp, je jednoduché napríklad pridať nový spôsob autentizácie (čítačku odtlačkov prstov) či zmeniť spôsob autentizácie v nejakom programe (chcem overovať heslá pomocou Kerbera namiesto /etc/shadow).
Celý systém sa skladá z troch súčastí:
libpam – oproti nej sú linkované programy, ktoré chcú PAM využívať/lib/security (Solaris a niektoré UNIXy /usr/lib/security) a do pamäte sú zavádzané dynamickyKeďže PAM je vo väčšine linuxových distribúcii už predinštalovaný, nebudem tu popisovať, ako ho do systému nainštalovať, a rovno sa vrhneme na konfiguráciu.
Konfigurácia PAMu je uložená v súbore /etc/pam.conf alebo rozdelená do viacerých súborov v adresári /etc/pam.d. Ak tento adresár existuje, súbor pam.conf sa ignoruje. Dovolím si tvrdiť, že z dôvodu prehľadnosti sa používa väčšinou varianta s /etc/pam.d.
Konfiguračný súbor /etc/pam.conf obsahuje riadky v
tvare:
service type control module-path module-args
Syntax súborov v /etc/pam.d/ je rovnaká, až na pole
service. Toto pole sa neuvádza a namiesto neho sa
použije názov konfiguračného súboru.
Každý riadok predstavuje pravidlo, ktoré sa uplatní pri autentizácii
v programe service. Čo konkrétne treba uviesť do tohoto poľa (resp. ako pomenovať konfiguračný súbor) už závisí na onom programe, zväčša to býva práve názov programu. Ak v poli service použijeme kľúčové slovo other, nastavíme implicitné správanie pre ostatné programy. Z bezpečnostných dôvodov sa tu používa len modul
pam_deny.so, ktorý užívateľovi prístup zakáže.
Pravidlá sa samozrejme môžu reťaziť, čím dosiahneme kombinácie rôznych autentizačných mechanizmov. K slovu sa dostávajú postupne tak, ako sú za sebou zapísané.
Pole type musí obsahovať jedno z kľúčových slov
account, auth, password a
session. Každé z nich pokrýva jeden z aspektov
autentizačného procesu. Ich význam je nasledovný:
account – ako overiť existenciu a platnosť užívateľského účtu, práva k danej službe a pod.auth – ako overiť identitu užívateľapassword – zmeny hesiel (ako heslo zmeniť, ako overiť, či je dostatočne silné a pod.)session – definuje, čo sa má stať pred udelením oprávnenia a po jeho odobratí. Napr. pripojenie domovského adresára užívateľa, auditing a pod.Pole control určuje, aký vplyv má modul na prebiehajúci
autentizačný proces. Môže nadobúdať tieto hodnoty:
required – zlyhanie modulu spôsobí zlyhanie autentizácie, ale až po skončení ostatných zreťazených modulovrequisite – zlyhanie modulu spôsobí okamžité zlyhanie autentizáciesufficient – úspech tohoto modulu postačuje na úspešnú autentizáciu (pokiaľ predtým nezlyhal modul s "required")optional – úspech alebo zlyhanie tohoto modulu sa berie do úvahy iba vtedy, ak je to jediný modul daného typu asociovaného s touto službou.Pole control môže obsahovať i relatívne nové kľúčové
slovo include, ktoré spôsobí vloženie pravidiel zo
súboru špecifikovaného v poli module-path. To nám
umožňuje vložiť spoločné nastavenia do jediného súboru, takže pri
zmene stačí upraviť len tento súbor.
Do poľa module-path sa uvádza cesta k modulu. Táto
cesta môže byť buď absolútna, alebo relatívna vzhľadom k adresári, v
ktorom sú PAM moduly (väčšinou /lib/security).
V poslednom poli module-args sa nachádzajú parametre modulu. Tie môžu byť pre každý modul iné, zistiť sa dajú v dokumentácii daného modulu. Väčšina modulov podporuje parameter debug, ktorý spôsobí podrobnejší výpis do systémového logu.
Moduly, ktoré vyžadujú po užívateľovi heslo, tiež zvyknú podporovať parametre try_first_pass a use_first_pass. Rozdiel medzi nimi je v tom, že try_first_pass sa snaží použiť heslo od niektorého z predchádzajúcich modulov a v prípade, že žiadne neexistuje, si ho vyžiada od užívateľa. Parameter use_first_pass naopak od užívateľa heslo nežiada a rovno zlyhá.
Väčšina modulov má svoju manuálovú stránku, v ktorej je popísaná činnosť modulu a podporované parametre.
/etc/passwd a /etc/shadowNa príklade si ukážeme konfiguráciu pre GDM, v ktorej povolíme prístup lokálnym užívateľom v /etc/passwd po overení odtlačku prstu a zadaní hesla. Niektorí užívatelia majú v domovskom adresári šifrované SSH kľúče, ale sú leniví a nechce sa im zadávať pri každom použití ssh heslo. Preto im s pomocou programu ssh-agent sprístupníme SSH kľúč po dobu trvania sedenia.
Konfigurácia je uvedená v súbore /etc/pam.d/gdm, do ktorého sa vkladá spoločný súbor /etc/pam.d/system-auth (je uvedený len pre úplnosť).
Prihlásenie začne odobraním odtlačku prsta. Následne si modul
pam_ssh.so vypýta od užívateľa heslo k SSH kľúču a pomocou
programu ssh-agent kľúč sprístupní až do konca sedenia. Ak
tento modul zlyhá, nič sa nedeje, užívateľ má stále možnosť sa prihlásiť,
akurát nebude mať v ssh-agentovi svoj kľúč.
Ďalej sa overí heslo v module pam_unix.so. Parameter
try_first_pass hovorí, že sa má najskôr skúsiť heslo z
predchádzajúcich modulov. Ak nevyhovie, systém sa na heslo opýta znovu.
Súbor /etc/pam.d/gdm:
auth optional pam_env.so auth required pam_thinkfinger.so auth required pam_nologin.so auth optional pam_ssh.so auth include system-auth account include system-auth password include system-auth session include system-auth session optional pam_ssh.so
Súbor /etc/pam.d/system-auth:
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth required pam_deny.so
account required pam_unix.so
password required pam_cracklib.so difok=2 minlen=8 \
dcredit=2 ocredit=2 try_first_pass retry=3
password sufficient pam_unix.so try_first_pass use_authtok \
nullok md5 shadow
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
Na záver ešte uvediem malú poznámku: pri pokusoch s PAMom buďte opatrní. Zmazanie alebo poškodenie konfigurácie PAMu má ten istý účinok, ako keď zamknete svoj byt a kľúče hodíte do kanála – už sa dovnútra viac nedostanete (bežnými metódami, samozrejme).
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
# required – zlyhanie modulu spôsobí zlyhanie autentizácie, ale až po skončení ostatných zreťazených modulov
# requisite – zlyhanie modulu spôsobí okamžité zlyhanie autentizácie
a ukazka z konfiguracneho syboru:
password required pam_cracklib.so difok=2 minlen=8 \
dcredit=2 ocredit=2 try_first_pass retry=3
password sufficient pam_unix.so try_first_pass use_authtok \
nullok md5 shadow
password required pam_deny.so
podla vsetkeho co je v clanku uvedene pokial pam_deny skonci s chybou (co skonci vzdy) ani zmena hesla nemoze nikdy prebehnut... Preto by mozno nebolo zle uviest sposob retazenia podrobnejsie, aby clanok ziskal aj vyznam: kazdy kto s PAMom robil uz vie ako funguje, a ten co s nim nerobil to podla clanku nepochopi, takze v sucasnom zneni trochu useless... Pokial sa mylim a ostatni to pochopili, prosim nekamenovat...
sufficient v poli control stačí k ověření, takže na pam_deny.so by v případě, že neselže pam_unix.so, vůbec nemělo dojít, ne?
pam_deny máte pam_unix se sufficient, takže pokud ten uspěje, výsledkem je úspěch a na pam_deny už nedojde.
Já s tímto teprve začínám, takže jsem to taky moc nepochopil. Nevěděl by někdo jak rozchodit přihlašování do systému pomocí IKey3000. Čerpal jsem z http://www.linuxexpres.cz/hardware/sifrovaci-token-ikey-3000, ale když jsem do /etc/pam.d/system-auth napsal přesně to, co v článku, tak to skončilo ne neúspěchem. Za případné rady děkuji.