Portál AbcLinuxu, 30. dubna 2025 23:56
Mam ale dojem, ze jsem nekde cetl, ze samba se neda nastavit jako windows, ze pokud pristoupis na nejakej server na share, tak se posle tvoje uzivatelsky jmeno. Samba tohle nedokaze delat, protoze samba nedokaze ze systemu prevzit heslo, kterym se uzivatel prihlasil. Takze leda tam udela skriptik na manualni pripojeni disku s tim, ze se uzivatele zepta na heslo jeste jednou. A nebo ten NFS.
Mount.cifs sice neumí vzít heslo za běhu systému, ale umí ho převzít v rámci přihlášení pomocí PAM - modul pam_mount
. Nastavení není triviální, ale fungovalo mi to.
zkusil jsem namountovat sambu a na heslo se to zeptalo:
vodik:~ # mount //10.10.10.1/MYSHARE1 /aoe1
Password:
Možná jsem se nevyjádřil úplně přesně. Prostě jde připojit přesně definované "síťové disky" v rámci přihlášení bez zadání hesla. Později, při ručním připojení, si to heslo už nepamatuje. Ale naznačený problém takhle lze řešit.
Pokud je stroj s Linuxem pomocí Samby zařazen v AD, pak by mělo ověření proběhnout přes Kerberos bez hesla (to ale nemám vyzkoušené).
pam_smb
. Natavení je celkem triviální - úprava PAM konfigurace + 1 soubor v /etc kde se nastaví jen název domény a IP adresa doménového řadiče, na straně Windows serveru není třeba nastavovat nic. Mohou být nastavena i lokální hesla, která se použijí, když selže pam_smb
- podle konkrétního nastavení PAM. Pak nebude problém s tím, když si uživatel změní heslo.
1) Pokud jde o připojování adresářů z Windows serveru, tak to lze relativně jednoduše a pro uživatele příjemně řešit pomocí pam_mount
- zařadí se do konfigurace PAM pro login, kdy má k dispozici plaintext heslo, které uživatel zadal. Pak se v nějakém konfiguračním souboru v /etc nastaví, co chci připojovat - použije se mount.cifs
, zadá se adresa serveru + share, kde lze opužít některé proměnné - jsou tam příklady.
Kdysi mi to fungovalo na LTSP celkem bez problémů. Uživatelům se Windows disk připojil do ~/H/ a o nic se nemuseli starat.
2) Ověřování lze udělat čistě a složitě přes Winbind (část Samby, zajístí NSS - seznam uživatelů + skupin) + Kerberos který zajístí ověřování na Windows KDC. Ale konfigurovat to pro tlusté klienty bude hodně těžké. Každý stroj s linuxem se musí pod svým jménem zařadit do Windows domény přes net ads join
...
Pokud jde do Windows LDAPu nějak "snadno" dostat UID a GID, tak bych na něj nasměroval přímo libnssl-ldap
- to by mělo jít nastavit snadno.
Pro ověřování hesla (sice z Linuxu oproti Samba serveru, ale to by mělo být stejné) jsem používal pam_smb
( http://www.csn.ul.ie/~airlied/pam_smb/ ) - ten fungoval velmi jednoduše a spolehlivě. Vůbec se nestaral o doménu, ale jednoduše vzaj jméno+heslo a zkusil se připojit na daný Samba/Windows server. Ovšem už v době, kdy byl stable Debian Sarge, jsem musel používat používat balíček z Debianu Woody protože v novějším Debianu nebyl, nevím jak teď.
3) Napadá mě ještě jedna možnost, pro danou situaci by to mohlo být vyhovující a spolehlivé, ale není to moc čisté...
Každou noc bych pomocí skriptu třeba v Perlu vytáhl seznam uživatelů z Active Directory (přes LDAP protokol, příklady lze najít). Nové uživatele v AD bych vytvořil v /etc/passwd na boot serveru, odstraněné z AD zde smazal (vkládal bych je do nějaké spec. skupiny, aby se odlišili od ostatních). Tím by byl na klientech zajištěn seznam uživatelů (NSS) - místo toho lde samozřejmě přímo použít LDAP, otázka je co bude jednodušší. Ověření hesla by šlo přes pam_smb
. Adresář z Windows serveru by se připojil pomocí pam_mount
. Hodně podobně mi to fungovalo před pár lety s LTPS a Samba serverem, když jsem neznal LDAP.
skuste link na zmienovany preklad z AD do LDAP. Pred casom som nieco take hladal a neuspesne. Vdaka.
Active Directory doménový řadič funguje jako LDAP server, ke kterému se lze připojit ("bind" v terminologii LDAPu), pokud tam máte účet. V případě LDAPu obecně nestačí login + heslo, ale je třeba vědět DN (Distinguished Name) ve tvaru jako: CN=ucet,OU=orgunit,DC=domena,DC=com
. V případě AD možná bude fungovat i "login@DOMAIN" (třeba první odkazovaný článek to tvrdí).
Možná je třeba něco povolit na Windows Serveru, to nevím. Zkusil bych i připojení na LDAPs port, možná nebude nešifrované spojení povoleno.
Pro začátek bych zkusil se na Windows server připojit nějakým LDAP prohlížečem - LDAPAdmin pro Windows nebo Luma pro Linux. Pochopíte tak strukturu a atributy, jak jsou data uložená. Pak lze s LDAP serverem pracovat třeba v Perlu / PHP / Pythonu - nějaké odkazy:
http://www.samuraj-cz.com/clanek/autentizace-uzivatele-vuci-ad-v-php/
http://www.developer.com/open/article.php/10930_3106601_2
Asi sme sa celkom nepochopili. Ja som myslel ze su vytvoreny xxx.schema pre LDAP, tak aby sa dali naimportovat ldif exporty z AD. Takpovediac "online" pristup do AD mi je jasny.
pokud do konfu nehodis netbios name tak to vezme automaticky hostname pocitace ...
ad 3) kerberos neres - samba si ho nakonfiguruje sama. staci byt na nej nachystany (nainstalovane baliky, synchronizovany cas) win uzivatele v linuxu - winbind nainstalovany a pridany do /etc/nsswitch.conf, pocitac pridany do ads (net join ads ...). afaik by melo stacit
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.