PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP/PDC net groupmap funktioniert nicht



Fly
30.03.05, 13:25
Ich habe mit meinem LDAP Server ein Problem. net groupmap list gibt folgendes aus:


fw:~ # net groupmap list
[2005/03/30 13:26:35, 0] passdb/pdb_ldap.c:ldapsam_setsamgrent(2576)
ldapsam_setsamgrent: LDAP search failed: No such object
[2005/03/30 13:26:35, 0] passdb/pdb_ldap.c:ldapsam_enum_group_mapping(2641)
ldapsam_enum_group_mapping: Unable to open passdb

So kann ich die Clients nicht in die Domäne hängen.

[EDIT]
SID for domain LDAP is: S-1-5-21-3381119369-3651556410-843037520
fw:~ # net getlocalsid kabel.ax
SID for domain kabel.ax is: S-1-5-21-3381119369-3651556410-843037520
[EDIT]

Fly
30.03.05, 14:11
#!/bin/bash
#### Shell-Skript für spätere Verwendung aufbewahren

# Als Erstes weisen wir bekannte Gruppen zu:
net groupmap modify ntgroup="Domain Admins" unixgroup=ntadmins rid=512
net groupmap modify ntgroup="Domain Users" unixgroup=users rid=513
net groupmap modify ntgroup="Domain Guests" unixgroup=nobody rid=514

wenn ich folgendes ausführe bekomme ich folgede Meldung


: command not found
Bad option: rid=512
Bad option: rid=513
Bad option: rid=514
: command not found
: command not found

Woran liegt das? :confused:

emba
30.03.05, 19:13
zum ersten thread: du scheinst ein problem mit dem ldap backend zu haben

zum zweiten: modify kennt die rid option nicht

greez

Fly
31.03.05, 22:22
Hallo Emba, kannst du mir bitte erklären, was genau ldap backend Betrifft. :confused:

In der ldap.conf hab ich folgendes eingetragen:


URI ldap://127.0.0.1
# The distinguished name of the search base.
base dc=kabel,dc=ax
# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3
# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/ldap.secret (mode 600)
rootbinddn cn=Manager,dc=kabel,dc=ax
# The port.
# Optional: default is 389.
port 389
pam_password crypt
nss_base_passwd dc=kabel,dc=ax
nss_base_shadow dc=kabel,dc=ax
nss_base_group dc=kabel,dc=ax
ssl start_tls

und in der /etc/nsswitch.conf


passwd: files ldap
shadow: files ldap
group: files ldap

passwd: compat
group: compat
hosts: files dns
networks: files dns
services: files
protocols: files
rpc: files
ethers: files
netmasks: files
netgroup: files
publickey: files
bootparams: files
automount: files nis
aliases: files

in der slapd.conf (ein Teil)


database bdb
checkpoint 1024 5
cachesize 10000
suffix "dc=kabel,dc=ax"
rootdn "cn=Manager,dc=kabel,dc=ax"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
#password-hash {SSHA}
rootpw {SSHA}XDEvdPEEYTrTUB3neRcHzZ6YXp7TaE+U
index objectClass eq
index sambaSID eq
index uid eq
index sambaPrimaryGroupSID eq
index uidNumber eq
index gidNumber eq

emba
01.04.05, 08:04
wie sieht denn die smb.conf aus?
hast du ACLs in der slapd.conf?

hast du smbpasswd -d "managerpasswort" gemacht?
evtl. hilft dir meine doku (s. sticky)

greez

Fly
01.04.05, 10:17
wie sieht denn die smb.conf aus?
hast du ACLs in der slapd.conf?

hast du smbpasswd -d "managerpasswort" gemacht?
evtl. hilft dir meine doku (s. sticky)

greez
Hallo emba, ich mein LDAP ganz ähnlich nach deiner guten Dokumentation gemacht.

smbpasswd -w hab ich gemacht. Muss ich die lokalen smbpasswd Datei mit smbpasswd -d dekativieren?

die ACLs in der slapd.conf


pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
access to dn.base="cn=Subschema"
by * read
access to attr=userPassword,userPKCS12
by self write
by * auth
access to attr=shadowLastChange
by self write
by * read
access to *
by * read

Die smb.conf


workgroup = kabel.ax
server string = samba %v
netbios name = ldap
username map = /etc/samba/smbusers
map to guest = Bad User
admin users = @"Domains Admins"
security = user
domain logons = yes
domain master = yes
encrypt passwords = yes
obey pam restrictions = no
ldap passwd sync = yes
ldap admin dn = cn=Manager,dc=kabel,dc=ax
ldap suffix = dc=kabel,dc=ax
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=ldmap
ldap delete dn = yes
passdb backend = ldapsam:ldap://127.0.0.1/
log level = 5
log file = /var/log/samba/log.%m
max log size = 1000
Dos charset = 850
Unix charset = UTF8
Display charset = UTF8
logon path =
logon home = \\ldap\%U
logon drive = P:
logon script = logon.cmd
add user script = /usr/local/sbin/smbldap-useradd -m "%u"
add machine script = /usr/local/sbin/smbldap-useradd -w "%u"
add group script = /usr/local/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/sbin/smbldap-groupmod "%u" "%g"
set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"
create mask = 0640
directory mask = 0750
guest account = nobody
dont descend = /proc,/dev,/etc,lost+fount,/initrd
preserve case = yes
short preserve case = yes
case sensitive = no
[netlogon]
path = /var/lib/samba/netlogon
browseable = no
read only = yes

emba
01.04.05, 10:39
verwendest du nicht die smbldap-tools?

du musst, bevor du net groupmap etwas entlocken kannst, das verzeichnis mit den basis dn's initialisieren - wie smbldap-populate das macht

mit smbpasswd -d disablest du doch nur nutzer und nicht dein passdb-backend
verwendest du derzeit ein passdb backend <> ldap?

dann musst du dies nach ldap portieren
wie das funktioniert, steht in der samba doku

greez

Fly
02.04.05, 12:22
Hallo Emba und alle anderen,

in meiner Freizeit versuche ich auch zuhause mit dem LDAP Server weiterzukommen. Leider lässt mir die smbldap-tools nicht zu. Folgende Fehler treten bei 2 verschiedene Versionen von smbldap-tools auf.


server:~/smbldap-tools-0.8.6 # ./configure.pl
Unrecognized escape \p passed through at ./configure.pl line 194.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
smbldap-tools script configuration
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Before starting, check
. if your samba controller is up and running.
. if the domain SID is defined (you can get it with the 'net getlocalsid')

. you can leave the configuration using the Crtl-c key combination
. empty value can be set with the "." caracter
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Looking for configuration files...

Samba Config File Location [/etc/samba/smb.conf] >
Use of uninitialized value in concatenation (.) or string at ./configure.pl line 65, <STDIN> line 1.
smbldap Config file Location (global parameters) [] >
Use of uninitialized value in concatenation (.) or string at ./configure.pl line 75, <STDIN> line 2.
smbldap Config file Location (bind parameters) [] > home.ax
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Let's start configuring the smbldap-tools scripts ...

. workgroup name: name of the domain Samba act as a PDC
workgroup name [home.ax] >
. netbios name: netbios name of the samba controler
netbios name [ldap] >
. logon drive: local path to which the home directory will be connected (for NT Workstations). Ex: 'H:'
logon drive [P:] >
. logon home: home directory location (for Win95/98 or NT Workstation).
(use %U as username) Ex:'\\ldap\home\%U'
logon home (leave blank if you don't want homeDirectory) [\\ldap\home\%U] >
. logon path: directory where roaming profiles are stored. Ex:'\\ldap\profiles\%U'
logon path (leave blank if you don't want roaming profile) [\\ldap\profiles\%U] >
. home directory prefix (use %U as username) [/home/%U] >
. default user netlogon script (use %U as username) [%U.cmd] >
default password validation time (time in days) [45] >
. ldap suffix [dc=home,dc=ax] >
. ldap group suffix [ou=Groups] >
. ldap user suffix [ou=Users] >
. ldap machine suffix [ou=Computers] >
. Idmap suffix [ou=ldmap] >
. sambaUnixIdPooldn: object where you want to store the next uidNumber
and gidNumber available for new users and groups
sambaUnixIdPooldn object (relative to ${suffix}) [cn=NextFreeUnixId] >
. ldap master server: IP adress or DNS name of the master (writable) ldap server
ldap master server [127.0.0.1] >
. ldap master port [389] >
. ldap master bind dn [cn=Manager,dc=home,dc=ax] >
ldap master bind password [] >
. ldap slave server: IP adress or DNS name of the slave ldap server: can also be the master one
ldap slave server [127.0.0.1] >
. ldap slave port [389] >
. ldap slave bind dn [cn=Manager,dc=home,dc=ax] >
. ldap slave bind password [] >
. ldap tls support (1/0) [0] >
. SID for domain home.ax: SID of the domain (can be obtained with 'net getlocalsid ldap')
SID for domain home.ax [S-1-5-21-3072785703-2247951337-3399784439] >
. unix password encryption: encryption used for unix passwords
unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] >
. default user gidNumber [513] >
. default computer gidNumber [515] >
. default login shell [/bin/bash] >
. default domain name to append to mail adress [] >
Use of uninitialized value in string at ./configure.pl line 287, <STDIN> line 34.
Use of uninitialized value in concatenation (.) or string at ./configure.pl line 287, <STDIN> line 34.
Unable to open for reading!


Weiss jemand wo der Fehler sein kann? Ich weiss ja, wie man den Skript ausfürht, ich find den Fehler einfach nicht... :mad:

emba
04.04.05, 10:08
du kannst ja mal in die entsprechenden zeilen der quellen reinschauen, die er anmeckert - meist hatte ich das problem, wenn ich umlaute im namen hatte

greez

Fly
05.04.05, 15:31
verwendest du nicht die smbldap-tools?

du musst, bevor du net groupmap etwas entlocken kannst, das verzeichnis mit den basis dn's initialisieren - wie smbldap-populate das macht
Ja, ich werde noch die Dokumentation für smbldap-populate suchen bzw. lesen


mit smbpasswd -d disablest du doch nur nutzer und nicht dein passdb-backend
verwendest du derzeit ein passdb backend <> ldap?

dann musst du dies nach ldap portieren
wie das funktioniert, steht in der samba doku

greez
Ich habe dich falsch verstanden. Ich habe die Samba Dokumentation gelesen. (Kapitel 4 bis 6)

Ich möchte gerne einfache ein LDAP Server auf einem Testsystem aufsetzen. Kannst du mir bitte sagen im welchem Kapitel ich über das Thema passdb backend = ldapsam_compat lesen soll?
Muss ich auch wenn ich einfach ein LDAP Server aufsetze ins ldap-backend portieren bzw. einfach passdb backend = ldapsam_compat ins smb.conf setzen?
Eine Frage: Kann ich in einem Netzwerk 2 verschiedene Domänencontroller betreiben mit unterschiedlichen Netzmasken, da ich die eine Domänencontroller mit LDAP testen möchte?

emba
06.04.05, 10:21
du kannst in deinem netzwerk, wenn die segmente abgekoppelt sind (bswp. du mit subnetzen arbeitest) nach belieben domänen anlegen - wichtig ist nur, dass immer unterschiedliche SIDs verwendet werden und die broadcasts eine domäne nicht in die andere kommen

schau dir bitte mal zum thema samba+ldap das hier an
http://www.linuxforen.de/forums/showthread.php?t=174852

greez

Fly
06.04.05, 11:53
du kannst in deinem netzwerk, wenn die segmente abgekoppelt sind (bswp. du mit subnetzen arbeitest) nach belieben domänen anlegen - wichtig ist nur, dass immer unterschiedliche SIDs verwendet werden und die broadcasts eine domäne nicht in die andere kommen
Meinst du, dass die Brodcast nicht über die Subnetze in die andere Domäne kommen? Z.B. bestehende Domäne IP 10.45.94.x/24 neue Domäne 192.168.1.x/24.


schau dir bitte mal zum thema samba+ldap das hier an
http://www.linuxforen.de/forums/showthread.php?t=174852
greez
Ja, ich lese gerade deine Doku genauer durch... Habe bezgl. smbldap-populate übersehen. Jedoch bleib ich immer noch hier hängen...
Wenn ich wie folgend den smbldap-populate ausführe:


fw:/usr/local/sbin # smbldap-populate -g 1500 -u 1500
Unable to open /etc/opt/IDEALX/smbldap-tools/smbldap.conf for reading !
Compilation failed in require at /usr/local/sbin/smbldap-populate line 35, <DATA> line 225.
BEGIN failed--compilation aborted at /usr/local/sbin/smbldap-populate line 35, <DATA> line 225.


ich versteh nicht warum es nach /etc/opt/IDEALX/smbldap-tools/ gesucht wird, bei mir liegen die smbldap-tools im /etc/smbldap-tools/, dann habe ich den Skript ./configure.pl laufen lassen, alles OK. Und mit smbldap-populate auch ohne uid bzw. gid gibt die gleiche Meldung...

Die Zeilen im smbldap-populate Skript habe ich mir angesehen, die können glaub ich nichts mit den Fehler zu tun haben:
Zeile 225: $userProfile=~s/\%U/$guestName/;
Zeile 35: use smbldap_tools;

emba
06.04.05, 13:03
zum idealx-fehler: bitte README/INSTALL lesen, denn da steht genau, dass du in der .pm datei noch die pfade angeben musst

zu den broadcasts: ich habe dies selbst so am laufen gehabt ohne probleme, die domänen hatten unterschiedliche namen und SIDs

als unser IDS auf der firewall dann aber dies bemerkt hat (wie auch immer), habe ich die testrechner in ein V-LAN gesteckt, was komplett unabhängig vom LAN war

greez

Fly
06.04.05, 15:24
allerdings habe ich jetzt ein Problem den Rechner in die Domäne zu hängen. Ich bekomme die Meldung, dass es sich um ein DNS Lookupproblem handelt und die Domäne nicht verfügbar sei. Ich habe schon versucht den W2k Client mit Name den PDC zu pingen, es funktioniert, weil ich den PDC in die hosts Datei der Client eingetragen habe. Stimmt, dass der Maschinenaccount automatisch angelegt wird, da im smb.conf eingetragen ist. Ein testparm sagt dass alles OK ist und server role: ROLE_DOMAIN_PDC

Ich hoffe, du kannst mir helfen, wo ich nach Fehler suchen kann.

[EDIT]Logdatei angehängt[EDIT]

emba
06.04.05, 15:40
die clients sollten netbios over tcp aktiviert haben (in den erweiterten netzwerkeinstellungen auf den clients)

google sollte hierzu aber auch einiges ausspucken

der maschinenaccount wird nur automatisch angelegt, wenn in der smb.conf ein funktionierendes skript unter "add machine script =" eingetragen ist

greez

Fly
06.04.05, 16:58
Immer wenn ich den smbd und nmbd starte stürzt der smbd Daemon nach ca. 5 Sekunden ab. Ich habe den Loglevel auf 8 erhöht. Ich hoffe mir kann jemand mit Logs helfen, denn mir fällt in den Log nichts auf.

emba
07.04.05, 10:03
fly, ohne dein log vorher betrachtet zu haben, konnte ich mir schon denken, an was es liegt

du rennst von einem problem ins nächste, liest die manuals nicht und versuchst nicht einmal mit google etwas zu finden :(

der fehler ist hier "User nobody in passdb, but getpwnam() fails!"
du verwendest als guest "nobody", doch dieser scheint nicht richtig im passdb backend angelegt zu sein - prüfe, welchen nutzer du im passdb backend als guest angelegt hast; er darf kein passwort haben und muss eine Primäre-Gruppen-SID von S-1-xxx-514 haben

greez

Fly
07.04.05, 12:58
Sorry, tut mir leid dass ich nicht soviel Geduld hatte die Dokumentationen genauer zu lesen...

Ich suche im Moment nach eine Lösung, wie ich den ganzen LDAP Verzeichnis leeren kann... ich möchte lieber nochmal zuerst mit smbldap-populate drüberfahren und dann erst die User anlegen...

@emba ich weiss noch immer nicht ganz, was du mit passdb backend gemeint hast. Ist das Richtig sobald die User mit ldif importiert wurde sind die User schon im passdb backend?

emba
07.04.05, 13:51
passdb backend ist bei dir ldap

mich ärgert es nur, wenn jmd. nicht selbst initiative ergreift und sich lösungen zusammenborgt

das hilft dir gar nicht weiter, wenns mal wieder klemmt
linux/samba/openldap erfordern schon ein wenig selbststudium

leeren kannst du dein gesamtes verzeichnis, indem du slapd stoppst und die DB löschst (meist alles in /var/lib/ldap/)

greez

Fly
07.04.05, 14:35
passdb backend ist bei dir ldap
Das ist mir ganz klar, dass bei mir ldap ist! ;) Du hast mich ein paar Fragen über passdb backend gestellt, die habe ich gar nicht verstanden und hab viel über passdb herumgesucht, überall sehe ich nur, dass ich für passdb backend entweder, smbpasswd, tbsam, ldap oder mysql usw. nehmen kann.


mich ärgert es nur, wenn jmd. nicht selbst initiative ergreift und sich lösungen zusammenborgt

das hilft dir gar nicht weiter, wenns mal wieder klemmt
linux/samba/openldap erfordern schon ein wenig selbststudium
Ich habe mir eigentlich ein Buch "LDAP unter Linux" von Jens Banning und während der Lesen war es mir zu langweilig :D und habe auch nichts verstanden, deswegen wollte ich zuerst schnell ein LDAP Server zusammenstellen. Jetzt kenne ich mich schon besser aus und werde wieder zum Buch greifen...


leeren kannst du dein gesamtes verzeichnis, indem du slapd stoppst und die DB löschst (meist alles in /var/lib/ldap/)

greezDanke, dass du mir geholfen hast!