Portál AbcLinuxu, 2. května 2025 13:45

Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)

5.1.2013 19:22 | Přečteno: 1206× | Debian

Zdálo se mi, že gdm3 a ldap nebude žádný problém, vždyť už to někdo dělal, tak to jen zopáknu a vyblognu. Jenže ukázalo se, že přesvědčit gdm aby spolupracoval s ldapem je na úrovni horroru. Upozorňujeme diváky, že následující řádky nejsou určeny pro slabší povahy, tak uložte děti do postýlek ;-)

Logická úvaha na úvod

Milý Watsone, z mých dvou předchozích zápisků víte, že mám LDAP, který chodí a autorizuje uživatele SSH. Normální uživatel ale chce používat linuxové stroje i přímo, tudíž by bylo záhodno, aby se dalo přihlásit přes gdm. Vzhledem k tomu, že přihlašování až funguje pro sshd, mělo by logicky fungovat i pro gdm. Jak prosté, milý příteli.

Popis z místa činu

  1. Sedneme k počítači, vybereme v přihlašovacím menu položku "jiné", zapíšeme username a heslo.
  2. očekáváme, že nás to přihlásí
  3. gdm zůstane viset, zšedne tlačítko přihlásit a tím to končí. Ze smrti ho může zachránit jen Escape

První podezřelý: PAM

Vzhledem k tomu, že tady navrhují změnu PAMu, byl PAM první podezřelý. V této části systému jsem zatím neměl potřebu se víc hrabat, takže velmi stručný úvod do problému. Na rootu byl přehledný článek, který to jakš-takš vysvětluje. /etc/pam.d/* mají formát
funkční_oblast kontrolní_příznak modul.so
Alegorický příklad ze života:
# This is /etc/pam.d/prace
auth requisite pam_kravata.so
auth required pam_visačka.so
auth sufficient pam_vrátný_si_pamatuje_obličej
auth required občanka.so
account required pracovni_doba.so

A teď vysvětlení sloupců. Funkční oblasti jsou
  1. auth - ověření identity uživatele - kdo tam ?
  2. account - "další ověřování, které nemá přímou souvislost s identitou uživatele" - např. má mít Franta přístup tady a teď ?
  3. session - proměnné prostředí, kvóty, chroot, připojení dalších souborových systémů nebo protokolování.
  4. password - změna hesla
Kontrolní příznaky jsou:
  1. required (povinný) - pokud neprojde, tak se pokračuje dál a na konci se přístup odepře
  2. requisite (bezpodmínečný) - okamžité odepření přístupu
  3. sufficient (postačující) - pokud vše dosud prošlo, tak ukončíme ověřování a povolíme přístup
  4. optional (nepovinný) - ?
Čili ve výše uvedeném konfiguráku vrátného - pokud do práce přijdete v kravatě s firemní visačkou a hezky pozdravíte, pustí vás dál (ale asi jen v pracovní době), pokud si Vás nepametuje, tak bude chtít vidět občanku.

Ve výchozím nastavení njenže gdm3 neukazuje ldapí uživatele, ale ani nedovolí jejich přihlášení a musí se zrušit klávesou escape. Výchozí nastavení /etc/pam.d/gdm3 v Debian Wheezy:

#%PAM-1.0
auth    requisite       pam_nologin.so
auth	required	pam_succeed_if.so user != root quiet_success
@include common-auth
auth    optional        pam_gnome_keyring.so
@include common-account
# SELinux needs to be the first session rule. This ensures that any 
# lingering context has been cleared. Without out this it is possible 
# that a module could execute code in the wrong domain.
session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close
session required        pam_limits.so
session required        pam_env.so readenv=1
session required        pam_env.so readenv=1 envfile=/etc/default/locale
session required        pam_loginuid.so
@include common-session
# SELinux needs to intervene at login time to ensure that the process
# starts in the proper default security context. Only sessions which are
# intended to run in the user's context should be run after this.
session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open
session optional        pam_gnome_keyring.so auto_start
@include common-password
Když se podíváme do odkazovaných common-auth, common-account, common-session, zjistíme, že ldap tam už je. Takže konfigurace je OK.

Může za to gdm !

Když je ldap v pořádku, ssh běží, pam je OK, tak nám opravdu zbývá jen gdm. Najít něco relevantního na netu je dost problém - tuny balastu všeho druhu. Nakonec jsem našel víceméně identický bug v bubububuntu. Na základě tohoto doporučení jsem zakomentoval celý /etc/X11/Xsession.d/90qt-a11y a restartnul gdm. A co byste řekli ? Nefungovalo to. Naštěstí jsem ale měl nainstalovaný i lightdm, tak jsem ho nastavil jako výchozí a restartnul xdm. Zkusil jsem se přihlásit a ono to prošlo !

Logicky jsem usoudil, že když to prošlo, tak gdm vytvořilo nějaké soubory v domácím adresáři a zkusil se přihlásit na sousedním stroji s gdm3. Přihlášení prošlo !

K ověření, že je to tím, jsem na jiném stroji zákeřně promazal ldapímu uživateli ~ .Zkusil jsem se přihlásit na gdm a co byste řekli ? Prošlo to ! To už není normální. Rozhodl jsem se přistoupit k poslední zkoušce:

Vytvořil jsem nového uživatele "neo", udělal mu homedir a čekal co se bude dít. Stíny se prodlužovaly ... svíce se třepotala ... vrzly dvéře ... a gdm ho normálně přihlásil a vytvořil potřebné adresáře jako by se nechumelilo !! Je to děsivé a neumím si to vysvětlit, ale už i v Linuxu začalo strašit ! To co je běžné ve Widlích jsem poprvé viděl i "u nás". Jednorázový úkon týkající se uživatele a se dotkne i uživatele B. Uživatel A samozřejmě není admin ldapu. WTF ???

Otázky pro pátera Knoxe i čtenáře detektivek

Jak je tohle možné ?!        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

5.1.2013 19:39 prqek | blog: prqek
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Nic si z toho nedělej, podobný pocity mám pokaždý, když se snažím překódovat nějaký video (viz můj poslední blog).
5.1.2013 20:01 citanus
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Odpovědět | Sbalit | Link | Blokovat | Admin
mrkni na sssd
6.1.2013 09:23 Georgius | skóre: 24 | blog: jirka
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
koukám, koukám, ale přijde mi to jako další démon, který řeší to, co mi už chodí (nscd) :-( Pokud se mýlím, tak mne oprav, prosím
grubber avatar 7.1.2013 09:34 grubber | skóre: 6 | blog: grubber | Břeclav / Brno
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Nejenom nscd, ale i NSS, PAM a nslcd (jak už jsem psal zde). Taky má pokročilé funkce, které nss_pam_ldapd a spol. nemá, konfiguraci všeho na jednom místě, inteligentnější cachování a je šetrnější k LDAP serveru (viz slajdy z LinuxDays/LinuxAltu). Myslím si, že kdybys použil SSSD od začátku, tak bys nemusel psát 3 a více blogových zápisků, ale stačil by jeden :-)
8.1.2013 18:10 cita
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Obdivuju tvoju trpelivost! Me uz se nechtelo nic psat, kdyz je pisatel blogu liny se poradne podivat na navrhovane reseni.

IMHO ano presne tak, kdyby pouzil sssd od zacatku, pravdepodobne by nevznikl ani jeden z techto blogpostu o ldapu
pavlix avatar 9.1.2013 12:34 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Obdivuju tvoju trpelivost! Me uz se nechtelo nic psat, kdyz je pisatel blogu liny se poradne podivat na navrhovane reseni.
Třeba jenom neví. Ale taky jsem občas trochu přísnější :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
5.1.2013 20:28 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Odpovědět | Sbalit | Link | Blokovat | Admin

Nastavoval si aj nss ?

Pozri tento howto.

Root v linuxe : "Root povedal, linux vykona."
6.1.2013 09:24 Georgius | skóre: 24 | blog: jirka
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Nastavoval. A getent i ssh chodí, takže jasně straší v GDM (gnome jako takové za to nemůže, protože mne to nepřihlásí ani do icewm).
5.1.2013 21:00 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Odpovědět | Sbalit | Link | Blokovat | Admin

GDM je prokleté. Před týdnem jsem zjistil, že když ukončím X11 relaci zabitím X serveru (Ctrl-Alt-Backspace), tak už se nikdo přes GDM 2 nepřihlásí (po zadání správného hesla jen problikne X server a jsem zpátky v GDM). Pomůže jenom restart GDM.

Podle mě trpí syndromem Gnome. Není důležité, jestli to funguje, hlavně že to je podle letošní módy.

Velmi silně uvažuji, že se budu věnovat nějakému DM, protože XDMCP umí už jen historické XDM.

5.1.2013 21:24 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Tady straší ! Detektivka o LDAP + GDM3 (a trochu i o PAMu)
Tak koukám, že GDM 3.6 už umí XDMCP. Ještě ho vyzkoušet.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.