Portál AbcLinuxu, 11. května 2025 10:08

Dotaz: Samba - založení účtu počítače v LDAP

mosquitor avatar 20.6.2008 09:41 mosquitor | skóre: 4 | blog: mosquitor
Samba - založení účtu počítače v LDAP
Přečteno: 1817×
Odpovědět | Admin
Dobrý den,
mám Sambu (Version 3.0.25b-1.el5_1.4) na Centosu 5.1. Pro správu uživatelů používám LDAP. Věci jako přihlášení do domény, sdílení adresářů chodí v pohodě. Trápí mě jen poslední věc - automatické vytvoření účtu počítače. Při pokusu přidat počítač do domény mi win zahlásí, že Nebylo nalezeno uživatelské jméno a v logu samby mám potom toto:
[2008/06/20 09:13:38, 2] passdb/pdb_ldap.c:init_sam_from_ldap(545)
  init_sam_from_ldap: Entry found for user: root
[2008/06/20 09:13:38, 2] auth/auth.c:check_ntlm_password(309)
  check_ntlm_password:  authentication for user [root] -> [root] -> [root] succeeded
[2008/06/20 09:13:38, 0] auth/auth_util.c:create_builtin_users(758)
  create_builtin_users: Failed to create Users
[2008/06/20 09:13:38, 2] auth/auth_util.c:create_local_nt_token(941)
  create_local_nt_token: Failed to create BUILTIN\Users group!
[2008/06/20 09:13:39, 2] rpc_server/srv_samr_nt.c:_samr_lookup_domain(2916)
  Returning domain sid for domain MOJEDOMENA -> S-1-5-21-1716412588-744545905-2821808859
sh: /usr/sbin/smbldap-useradd: Přístup odmítnut
[2008/06/20 09:13:39, 0] passdb/pdb_interface.c:pdb_default_create_user(329)
  _samr_create_user: Running the command `/usr/sbin/smbldap-useradd -w "test-03$"' gave 126
smb.conf
[global]
	netbios name = mujpdc
	netbios aliases = intranet
	security = user
	workgroup = mojedomena
	domain logons = Yes
	domain master = Yes
	local master = no
	os level = 65
	server string = PDC (samba,centos)

	encrypt passwords = yes
	interfaces = lo eth0
	bind interfaces only = yes
	null passwords = no

	passwd chat debug = yes
	ldap delete dn = Yes

	add user script = /usr/sbin/smbldap-useradd -m "%u"
	add machine script = /usr/sbin/smbldap-useradd -w "%u"
	delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
	delete user script = /usr/sbin/smbldap-userdel "%u"
	add group script = /usr/sbin/smbldap-groupadd -p "%g"
	add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
	delete group script = /usr/sbin/smbldap-groupdel "%g"
	set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'

	max log size = 50
	log level = 2
	log file = /var/log/samba/log.%m
	guest account = nobody

	ldap user suffix = ou=Users
	ldap group suffix = ou=Groups
	ldap machine suffix = ou=Computers
	ldap idmap suffix = ou=Idmap
	ldap suffix = dc=mojedomena,dc=cz
	ldap passwd sync = Yes
	ldap admin dn = cn=manager,dc=mojedomena,dc=cz
	passdb backend = ldapsam:ldap://127.0.0.1/

	logon drive = H:
	logon script = logon.bat
	logon home = \\%l\home\%u
	logon path = \\%l\profiles\%u
	username map = /etc/samba/smbusers

	unix password sync = no
	syslog = 0
	unix charset = UTF-8
	dos charset = 852

	follow symlinks = no
	store dos attributes = yes
	enable privileges = yes
	hide dot files = yes
	dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd
	nt acl support = yes
	inherit acls = yes
	default case = lower
	preserve case = no
	short preserve case = no
	case sensitive = no

[home]
	comment = Domovska slozka uzivatele %U
	browseable = yes
	writeable = yes
	create mask = 0600
	directory mask = 0700
	path = /data/homes/%U

[netlogon]
	comment = Network Logon Service
	path = /data/shares/netlogon
	browseable = no
	read only = yes

[profiles]
	comment = Network Profiles Share
	browseable = no
	guest ok = no
	create mask = 0600
	directory mask = 0700
	path = /data/profiles
	writeable = yes
	profile acls = yes
	hide files = /desktop.ini/outlook*.lnk/*Briefcase*/
a hlavní problém bude možná v pam, kde mám /etc/pam.d/system-auth toto
auth required pam_nologin.so
auth sufficient pam_ldap.so
auth required pam_unix.so nullok try_first_pass #set_secrpc

account sufficient pam_ldap.so
account required pam_unix.so

password requisite pam_cracklib.so retry=3 minlen=2  dcredit=0  ucredit=0
password required pam_ldap.so use_first_pass use_authtok
password required pam_unix.so nullok use_first_pass use_authtok

session required pam_unix.so none # debug or trace
session required pam_limits.so
session required pam_env.so
session optional pam_mail.so
a tomu právě moc nerozumím, tak jsem spíš hledal již nastavené konfigurační soubory a nastavoval podle nich.
Když spustím příkaz /usr/sbin/smbldap-useradd -w "test-03$" ručně z shellu, tak se počítač normálně vloží do LDAP a pak již přidat počítač do domény z win jde.
Prosím poraďte co s tím.
Díky Radek
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.6.2008 10:14 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proč používáte add * scripty, když PAM ověřuje uživatele také v LDAPu? Při vytvoření uživatele jej Samba vytvoří v LDAPu, čímž vznikne i unixový uživatel a nemělo by být potřeba dělat ještě něco dalšího.

Jinak počítač do domény by neměl přidávat root, ale uživatel, který má právo přidávat počítače do domény (např. člen skupiny Domain Administartors).
20.6.2008 10:57 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Myslím, že pokud má Samba jako backend LDAP, tak PAM ani není potřeba. Ověřování hesla i jeho případná změna se dělá rovnou na LDAPu, je samozřejmě třeba mít fukční nss_ldap, aby byli uživatelé v systému.

add-* script, konkrétně add machine script je dobré použít, aby nebylo nutné vytvářet UNIX uživatele pro workstation ručně. Samba umí při přidání PC do domény nastavit Samba heslo a atributy, ale samotné vytvoření UNIX uživatele se musí řešit přes ten skript. Když to funguje, tak k přidání PC do domény není třeba žádný zásah na serveru.

Je pravda, že do domény by počítač neměl přidávat root, není dobrý nápad mít u roota nastavené samba heslo. Uživatel, který má právo přidat účet do domény, nemusí být členem Domain Administrators, stačí mu přidat práva pomocí net rpc rights. Je třeba mí nastaveno enable privileges = yes. Jako výchozí má skupina Domain Administrators (v Sambě BUILTIN\Administrators) všechna práva, takže to lze řešit i přiřazením uživatele do ní.
20.6.2008 14:12 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Myslím, že pokud má Samba jako backend LDAP, tak PAM ani není potřeba. Ověřování hesla i jeho případná změna se dělá rovnou na LDAPu, je samozřejmě třeba mít fukční nss_ldap, aby byli uživatelé v systému.
Vždycky mám problém uvědomit si, co v symbióze NSS a PAMu dělá NSS a co PAM. Ale Samba opravdu potřebuje informace o uživatelích a nepotřebuje ověřování hesel, takže potřebuje NSS, na PAMu nezáleží.
add-* script, konkrétně add machine script je dobré použít, aby nebylo nutné vytvářet UNIX uživatele pro workstation ručně. Samba umí při přidání PC do domény nastavit Samba heslo a atributy, ale samotné vytvoření UNIX uživatele se musí řešit přes ten skript. Když to funguje, tak k přidání PC do domény není třeba žádný zásah na serveru.
Pokud nastavíte ldapsam:trusted, Samba umí vytvořit v LDAPu i údaje pro Posix account.
Je třeba mí nastaveno enable privileges = yes. Jako výchozí má skupina Domain Administrators (v Sambě BUILTIN\Administrators) všechna práva, takže to lze řešit i přiřazením uživatele do ní.
Ano, tak jsem to myslel – tazatel bude pravděpodobně stejně potřebovat nějakého síťového administrátora, takže je nejlepší takového vytvořit rovnou na začátku a přidávat počítače pod ním.
20.6.2008 10:16 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Odpovědět | | Sbalit | Link | Blokovat | Admin
sh: /usr/sbin/smbldap-useradd: Přístup odmítnut
mate +x bit na tom fajlu? pripadne pro toho uzivatele pod kterym to delate?
In Ada the typical infinite loop would normally be terminated by detonation.
20.6.2008 10:35 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chyba bude tady:
[2008/06/20 09:13:39, 2] rpc_server/srv_samr_nt.c:_samr_lookup_domain(2916)
  Returning domain sid for domain MOJEDOMENA -> S-1-5-21-1716412588-744545905-2821808859
sh: /usr/sbin/smbldap-useradd: Přístup odmítnut
[2008/06/20 09:13:39, 0] passdb/pdb_interface.c:pdb_default_create_user(329)
  _samr_create_user: Running the command `/usr/sbin/smbldap-useradd -w "test-03$"' gave 126
Samba by ten příkaz měla vždy spouštět pod rootem (předpokládám, že PC do domény přidáváš jako root). Zkusil bych zvýšit úroveň logování, jestli se tam neobjeví něco víc. Případně bych zkusil jako add machine script nastavit nějaký jednoduchý skript, který třeba jen vytvoří soubor v /tmp, aby se zjistilo, jestli a jak ho Samba spouští.

Z toho bloku v smb.conf, kde je add user script = a podobně, potřebuješ nechat jenom add machine script (pokud nechceš pro správu uživatelů používat NT Manager for domains, což bych moc nedoporučoval).

S těmi smbldap-* skripty nemám moc dobré zkušenosti (ale je to už dávno, možná je to už lepší), radši jsem si pro add machine script napsal sám krátký skript v bashi.

Pak bych ještě doporučil v sekci [profiles] přidat:
  map system = yes
  map hidden = yes
V profilech je hodně skrytých nebo systémových souborů a některé programy se chovají divně, pokud to není zachováno. Třeba ten desktop.ini, což jsi obešel přes hide files. I když teď vidím, že to máš asi řešeno pomocí store dos attributes, ale pozor na to, že je potřeba mít zapnuté extended attributes na filesystému.
mosquitor avatar 23.6.2008 11:31 mosquitor | skóre: 4 | blog: mosquitor
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravím,
takže jsem dnes byl nucen vypnout server z důvodu výpadku elektřiny a po startu vše funguje tak jak má. Takže mě napadá jediná věc - nové nastartování nějaké služby, tzn. natažení nové konfigurace. Vzhledem k tomu, že se v linuxu orientuju zatím jen velmi zběžně, tak nevím které služby jsou zodpovědné za věci ohledně samby a hlavně přidávání počítačů do domény. Vždy jsem jen restartoval sambu a ldap.
Díky Radek
23.6.2008 16:27 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Samba - založení účtu počítače v LDAP
Jestli používáte NSS a máte zapnuté kešování, může to být způsobené tím.

Založit nové vláknoNahoru

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

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