PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba,Ldap und keine Benutzer!



oafish
11.04.05, 07:34
Hallo,
ich verwende Samba in Verbindung mit OpenLDAP. Soweit funktioniert auch alles prächtig. Es gibt allerdings noch ein kleines problemchen... wenn ich unter Windows in die Sicherheitseinstellungen gehe, fehlen mir die Benutzer. Die Gruppen sind alle da und können auch ohne Probleme zugeordnet werden.
Woran könnte das liegen???

Grüßle
oafish

emba
11.04.05, 08:45
is der samba pdc oder member?

wenn pdc, dann stimmt bei dir was mit dem user- und groupmapping nicht (net groupmap list) - hat ein nutzer immer eine eindeutige SID?

wenn du den loglevel erhöhst, dann siehst du, dass samba sich beschwert, es könne den nutzer nicht auflösen

arbeitest du mit domänen?

wenn member server: hast du winbind aktiv?

greez

oafish
11.04.05, 09:37
Hallo emba,
Samba-Ldap ist ein PDC. Auf dem PDC werden die net groupmap list richtig ausgegeben:


it (S-1-5-21-3988497288-3703924388-3932526231-3009) -> it
buchhaltung (S-1-5-21-3988497288-3703924388-3932526231-3011) -> buchhaltung

getentpasswd zeigt mir alles richtig an.

Allerdings erzeugt net usersidlist ein: utils/net_rpc.c:net_usersidlist(3726)
Could not get the user/sid list fehler

Die Samba-Log-Datei:
[2005/04/11 10:40:17, 10] lib/util_sock.c:read_smb_length_return_keepalive(505)
got smb length of 35
[2005/04/11 10:40:17, 6] smbd/process.c:process_smb(1090)
got message type 0x0 of len 0x23
[2005/04/11 10:40:17, 3] smbd/process.c:process_smb(1091)
Transaction 200 of length 39
[2005/04/11 10:40:17, 5] lib/util.c:show_msg(464)
[2005/04/11 10:40:17, 5] lib/util.c:show_msg(474)
size=35
smb_com=0x71
smb_rcls=0
smb_reh=0
smb_err=0
smb_flg=24
smb_flg2=51207
smb_tid=1
smb_pid=65279
smb_uid=100
smb_mid=12800
smt_wct=0
smb_bcc=0
[2005/04/11 10:40:17, 3] smbd/process.c:switch_message(886)
switch message SMBtdis (pid 23797) conn 0x83978b0
[2005/04/11 10:40:17, 0] smbd/process.c:smb_dump(841)
created /tmp/SMBtdis.29.req len 39
[2005/04/11 10:40:17, 3] smbd/sec_ctx.c:set_sec_ctx(288)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0
[2005/04/11 10:40:17, 5] auth/auth_util.c:debug_nt_user_token(486)
NT user token: (NULL)
[2005/04/11 10:40:17, 5] auth/auth_util.c:debug_unix_user_token(505)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
[2005/04/11 10:40:17, 5] smbd/uid.c:change_to_root_user(296)
change_to_root_user: now uid=(0,0) gid=(0,0)
[2005/04/11 10:40:17, 3] smbd/sec_ctx.c:set_sec_ctx(288)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0
[2005/04/11 10:40:17, 5] auth/auth_util.c:debug_nt_user_token(486)
NT user token: (NULL)
[2005/04/11 10:40:17, 5] auth/auth_util.c:debug_unix_user_token(505)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
[2005/04/11 10:40:17, 5] smbd/uid.c:change_to_root_user(296)
change_to_root_user: now uid=(0,0) gid=(0,0)
[2005/04/11 10:40:17, 3] smbd/service.c:close_cnum(836)
Terminalserver (192.168.10.10) closed connection to service IPC$
[2005/04/11 10:40:17, 3] smbd/connection.c:yield_connection(69)
Yielding connection to IPC$
[2005/04/11 10:40:17, 4] smbd/vfs.c:vfs_ChDir(654)
vfs_ChDir to /
[2005/04/11 10:40:17, 3] smbd/sec_ctx.c:set_sec_ctx(288)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0
[2005/04/11 10:40:17, 5] auth/auth_util.c:debug_nt_user_token(486)
NT user token: (NULL)
[2005/04/11 10:40:17, 5] auth/auth_util.c:debug_unix_user_token(505)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
[2005/04/11 10:40:17, 5] smbd/uid.c:change_to_root_user(296)
change_to_root_user: now uid=(0,0) gid=(0,0)
[2005/04/11 10:40:17, 0] smbd/process.c:smb_dump(841)
created /tmp/SMBtdis.29.resp len 39
[2005/04/11 10:40:17, 5] lib/util.c:show_msg(464)
[2005/04/11 10:40:17, 5] lib/util.c:show_msg(474)
size=35
smb_com=0x71
smb_rcls=0
smb_reh=0
smb_err=0
smb_flg=136
smb_flg2=51201
smb_tid=1
smb_pid=65279
smb_uid=100
smb_mid=12800
smt_wct=0
smb_bcc=0
[2005/04/11 10:40:17, 6] lib/util_sock.c:write_socket(449)
write_socket(5,39)
[2005/04/11 10:40:17, 6] lib/util_sock.c:write_socket(452)
write_socket(5,39) wrote 39


Grüßle
oafish

oafish
11.04.05, 11:05
Hi,
wie es aussieht, kann er die Benutzer irgendwie nicht finden bzw. will diese nicht finden.

Folgende Ausgabe:
conn=8 fd=9 ACCEPT from IP=192.168.1.3:51431 (IP=0.0.0.0:389)
conn=8 op=0 BIND dn="cn=Manager,dc=test-dom,dc=de" method=128
conn=8 op=0 BIND dn="cn=Manager,dc=test-dom,dc=de" mech=SIMPLE ssf=0
conn=8 op=0 RESULT tag=97 err=0 text=
conn=8 op=1 SRCH base="dc=test-dom=de" scope=2 filter="(&(objectClass=posixAccount)(uid=mail))"
conn=8 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
conn=8 op=2 SRCH base="ou=Groups,dc=test-dom,dc=de" scope=1 filter="(&(objectClass=posixGroup)(memberUid=mail))"
conn=8 op=2 SRCH attr=gidNumber
conn=8 op=2 SEARCH RESULT tag=101 err=0 nentries=0 text=
conn=8 fd=9 closed

Er sucht immer nur in base="ou=Groups. Kann ich dies in der slapd.conf irgendwie über Index einstellen?

Nochwas ist mir aufgefallen... wenn ich net getlocalsid eintrage gehts. Trage net getlocalsid test-dom.de ein, erhalte ich eine Fehlermeldung.

Grüßle
oafish

emba
11.04.05, 13:05
er sucht in groups um herauszufinden, welchen gruppen der nutzer angehört
dies sollte normalerweise eine liste im log liefern

werden denn mit "id nutzer" dessen gruppenzugehörigkeiten auf POSIX ebene angezeigt?

hast du im LDAP (slapd) ACLs gesetzt?
welche tools nimmst du zur nuterverwaltung?

greez

oafish
11.04.05, 13:21
Hallo emba,
id benutzername zeigt mir folgendes:
uid=1000(testuser) gid=513(Domain Users) groups=513(Domain Users),1000(testgroup)

das sieht soweit gut aus. getent passwd und getent group listen mir auch alles korrekt auf.
Ich verwende die smbldap-tools und auch deren acl´s:


# users can authenticate and change their password
access to attrs="userPassword,sambaNTPassword,sambaLMPassword,samba PwdLastSet,sambaPwdMustChange"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=nssldap,ou=DSA,dc=test-dom,dc=de" write
by self write
by anonymous auth
by * none

# some attributes need to be readable anonymously so that 'id user' can answer correctly
access to attrs="objectClass,entry,gecos,homeDirectory,uid,uidNumbe r,gidNumber,cn,memberUid"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by * read

# somme attributes can be writable by users themselves
access to attrs="description,telephoneNumber"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by self write
by * read

# some attributes need to be writable for samba
access to attrs="cn,sambaLMPassword,sambaNTPassword,sambaPwdLastSet ,sambaLogonTime,sambaLogoffTime,sambaKickoffTime,s ambaPwdCanChange,sambaPwdMustChange,samba
AcctFlags,displayName,sambaHomePath,sambaHomeDrive ,sambaLogonScript,sambaProfilePath,description,sam baUserWorkstations,sambaPrimaryGroupSID,sambaDomai nName,sa
mbaSID,sambaGroupType,sambaNextRid,sambaNextGroupR id,sambaNextUserRid,sambaAlgorithmicRidBase"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by self read
by * none

# samba need to be able to create the samba domain account
access to dn.base="dc=test-dom,dc=de"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by * none

# samba need to be able to create new users account
access to dn="ou=Users,dc=test-dom,dc=de"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by * none

# samba need to be able to create new groups account
access to dn="ou=Groups,dc=test-dom,dc=de"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by * none

# samba need to be able to create new computers account
access to dn="ou=Computers,dc=test-dom,dc=de"
by dn="cn=samba,ou=DSA,dc=test-dom,dc=de" write
by dn="cn=smbldap-tools,ou=DSA,dc=test-dom,dc=de" write
by * none

access to *
by * read
by * none


Was mir in der smb.conf aufgefallen ist. Testparm zeigt mir den Parameter: ldap filter = (uid=%u) an obwohl ich diesen nicht angegeben habe. Kann es sein das hier der Fehler liegt?

Ich verstehe nur nicht weshalb die Gruppen korrekt angezeigt werden und die Benutzer nicht! Hm, ich bin inzwischen völlig überfragt.

oafish

emba
11.04.05, 15:41
ok, der filter ist in ordnung - setzt du ihn nicht, so wird der defaultwert genommen

entferne mal die ACLs, das hat schon manchem zu testzwecken geholfen

greez

oafish
12.04.05, 10:14
Hallo emba,
Problem ist gelöst! Ich hatte vor einiger Zeit die SID geändert und bei einem Benutzer das vergessen da dieser damals deaktiviert war. Nach dem aktivieren gabs anschließend die oben beschriebenen Probleme!

Vielen Dank für die Hilfe :)
oafish