PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OPENLDAP - was hat es mit pwdLastSet auf sich ?



DaQuark
05.04.04, 11:14
Hi Leute,

ich habe einen Samba 3 + PDC und OpenLDAP 2.0.27-8 zu laufen. Außerdem benutze ich die SMBTools (HowTo auf Seite http://www.icer.ch/support/docs/linux/samba22.phtml)

Wenn ich nun über die smbtools einen SMBAccount anlegen will, mache ich das mit folgendem Befehl :

./smbldap-useradd.pl -a -n -m -g 100 -d /home/username -c "Username Account" -P username

Ausgespuckt bekomme ich immer folgende Fehlermeldung :

ldap_modify: Undefined attribute type
additional info: pwdLastSet: attribute type undefined
ldif_record() = 17
./smbldap-useradd.pl: error while adding samba account to posix user username


Ich habe auch nach wie vor Probleme mit dem LDAP-Browser v2.8.2 ein Attribute pwdLastSet oder pwLastSet anzulegen. Funktioniert einfach nicht ? Ich wüsste jetzt gerne, warum er mir dieses Attribut nicht hinzufügen kann ? Ich hab mir mal die Veränderungen zu Samba 3 angeschaut und nichts dergleichen gefunden. Mir hat dieses Attribut in der letzten Version schon Schwierigkeiten bereitet - es hindert mich auch daran, SMB-Benutzeraccounts zu erstellen.

Kennt jemand gleiches Problem oder wisst ihr, wie man dieses Problem löst oder umgeht ?

Danke schonmal !

mfg Marcel

DaQuark
05.04.04, 12:39
Im Script steht folgendes zum hinzufügen der Benutzer :

"dn: uid=$userName,$usersdn
changetype: modify
objectClass: inetOrgPerson
objectclass: posixAccount
objectClass: sambaSamAccount
pwdLastSet: 0
logonTime: 0
logoffTime: 2147483647
kickoffTime: 2147483647
pwdCanChange: $valpwdcanchange
pwdMustChange: $valpwdmustchange
displayName: $_userGecos
acctFlags: $valacctflags
rid: $userRid


Wenn ich jetzt pwdLastSet auskommentiere, dann zeigt er mir dort kein Fehler mehr an - aber der nachfolgende Zeile :

logoffTime: 2147483647

Dies hab ich mal Testweise mit allen Zeilen nach pwdLastSet gemacht. Dann zeigt er mir auf einmal den Fehler

unrecognized objectClass 'sambaSamAccount'

was ja eigentlich nicht sein dürfte, ODER ?

Warum zeigt mir LDAP da immer Fehlermeldungen ???

THX Marcel

emba
05.04.04, 16:12
das kommt immer dann, wenn ldap die entsprechenden beschreibungen nicht in der samba.schema finden kann

ab der v3 haben die meisten attribute ein vorangestelltes "samba"
also

sambaPwdLastSet

ggf. musst du das in deinen (perl) scripten noch anpassen

greez

jado
05.04.04, 23:11
die aktuelle Version von smbldap-tools unterstützt eigentlich samba.schema v3 bereits.

DaQuark
07.04.04, 14:45
ok ich hab jetzt die neuen smbldap-tools raufgespielt. Gibt aber noch ein paar Probleme für alle, die das gleiche Problem haben :

Soltte folgender Fehler auftreten (bei smbldap-useradd) :



Can't locate Net/LDAP.pm in @INC (@INC contains: /usr/local/sbin/ /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at /usr/local/sbin//smbldap_tools.pm line 4.
BEGIN failed--compilation aborted at /usr/local/sbin//smbldap_tools.pm line 4.
Compilation failed in require at ./smbldap-useradd line 32.
BEGIN failed--compilation aborted at ./smbldap-useradd line 32.


Sollte man folgende Pakete installieren :

- perl-Net-LDAP-0.2701-1.dag.rh90.rpm
- perl-Convert-ASN1-0.17-0.dag.rh90.noarch.rpm
- perl-Net-Server-0.85-0.dag.rh90.noarch.rpm
- perl-IO-Socket-SSL-0.94-0.dag.rh90.noarch.rpm
- perl-Net-SSLeay-1.23-0.dag.rh90.i386.rpm
- perl-IO-Multiplex-1.04-0.dag.rh90.noarch.rpm


alle unter http://www.rpmseek.com zu finden



Mein Problem nun :

Wenn ich ./smbldap-useradd -a -n -m -g 100 -d /home/celli -c "Cellis Account" -P celli
ausführe erscheint folgender Fehler :



failed to perform search; I/O Error at /etc/smbldap-tools//smbldap_tools.pm line 212.
Datenübergabe unterbrochen (broken pipe)


Was muss ich tun ? Bzw. wo liegt jetzt der Fehler vor ? Habe keine Ahnung, was der jetzt von mir will. Kann jemand helfen ?

THX Marcel

DaQuark
07.04.04, 16:02
Komischer Weise geht es jetzt. Ich habe nochmal mit dem Script ./configure.pl die smbldap-tools konfiguriert und auf einmal, zeigt er mir nicht mehr diesen Fehler an. Dafür einen anderen *g* Ich hangel mich wirklich von Fehlermeldung zu Fehlermeldung - ich hoffe nur, dass dies die letzte ist :




./smbldap-useradd -a -n -m -g 100 -d /home/celli -c "Cellis Account" -P celli1
Error: SID not set for unix group 100
check if your unix group is mapped to an NT group



Die Gruppe 100 existiert und ist für die User. Aber warum meckert er da ? Weiß jemand Rat ?

mfg Marcel

emba
07.04.04, 16:12
die gruppe existiert zwar, aber nicht das mapping, dass der gruppe die entsprechende NT gruppe zuweist

ich arbeite nicht mit den tools, daher weiß ich nicht, ob diese eine funktionalität bieten, das mapping zu erledigen

ansonsten musst du zunächst mit

net groupmap add

arbeiten

greez

DaQuark
07.04.04, 16:25
müsste das dann ungefähr so aussehen oder hab ich noch was vergessen ?

net groupmap add rid=553 sid=S-1-5-21-2926252566-210214416-216931407 unixgroup=100 type=domain

emba
07.04.04, 16:31
könnte so klappen, aber setze anstatt der rid 553 mal 1201 ein (algorithmic rid mapping)

was zeigt der output und das kommando "net groupmap list -d0" ?

greez

DaQuark
07.04.04, 16:34
net groupmap list -d0 zeigt :



System Operators (S-1-5-32-549) -> -1
100 (S-1-5-21-2926252566-210214416-216931407) -> users
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Domain Admins (S-1-5-21-2926252566-210214416-216931407-512) -> -1
Domain Admins (S-1-5-21-836288985-2851095360-848507770-512) -> -1
Domain Users (S-1-5-21-2926252566-210214416-216931407-513) -> -1
Power Users (S-1-5-32-547) -> -1
Print Operators (S-1-5-32-550) -> -1
Domain Users (S-1-5-21-836288985-2851095360-848507770-513) -> -1
Administrators (S-1-5-32-544) -> -1
Domain Guests (S-1-5-21-2926252566-210214416-216931407-514) -> -1
Account Operators (S-1-5-32-548) -> -1
Domain Guests (S-1-5-21-836288985-2851095360-848507770-514) -> -1
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1


als ich das erste Mal net groupmap add gemacht habe, hat er es irgendwie gemacht (also vorhin mit rid=100) jetzt zeigt er mir bei dem Befehl

net groupmap add rid=1201 sid=S-1-5-21-2926252566-210214416-216931407 unixgroup=100 type=domain

folgenden Fehler an :



adding entry for group 100 failed!

emba
07.04.04, 17:31
dein ganzes groupmapping ist im eimer, so wie ich das sehe

probier mal folgendes script von mir (damit mach ich das immer erfolgreich)
vorher solltest du aber mal die defekten mapping einträge entfernen



###############################################
# #
# script to add posix and samba groups in #
# LDAP #
# #
# (c) Michael Gasch 2003 #
# #
###############################################


#!/bin/sh

# authorization
echo -e "\n===================================="
echo " Please enter LDAP-Manager Password"
echo -e "====================================\n"
read -s password


ldapwhoami -x -w "$password" 2>/dev/null >&1

if [ $? -gt 0 ]; then
echo -e "\nWrong password - aborting...\n"
exit 0

fi


# suche letzte group-id und erhoehe um 1
GroupID=$((`ldapsearch -x objectclass=posixGroup|grep gidNumber|grep -v 65533|awk -F": " '{print $2}'|sort|tail -n 1` + 1))
GROUPNAME=$1

if [ $GroupID -le 499 ]
then
$GroupID="500"
fi

DOMAINNAME="your.domain.org"
DOMAINSID=`net getlocalsid $DOMAINNAME -d0|awk -F": " '{print $2}'`
GRID=$(($GroupID * 2 + 1001))

# group ID for posix-users
# 500 for "users"
# GroupID="500"
# ldap settings
OUGROUP="groups"
OUIDMAP="idmap"
DOMAIN="your.domain.org"
BASEDN="your.domain.org"
LDAP_MAN="cn=manager,dc=eva,dc=mpg,dc=de"
LDAP_MAN_PW="$password"


#########################################
# #
# section for adding posix-group #
# in LDAP #
# #
#########################################

/bin/rm -rf /tmp/ldap
/bin/mkdir /tmp/ldap

if [ `ldapsearch -xb "uid=$GROUPNAME,ou=$OUGROUP,$BASEDN"|grep -c numEntries` -gt 0 ]
then
echo "Posix-Group already present...skipping"

else

/bin/cat <<EOF>/tmp/ldap/groupadd.ldif

# $GROUPNAME, $OUGROUP, $DOMAIN
dn: uid=$GROUPNAME,ou=$OUGROUP,$BASEDN
objectClass: posixGroup
objectClass: uidObject
objectClass: sambaGroupMapping
cn: $GROUPNAME
uid: $GROUPNAME
gidNumber: $GroupID
sambaSID: $DOMAINSID-$GRID
sambaGroupType: 2
displayName: $GROUPNAME

EOF

/bin/cat <<EOF>/tmp/ldap/idmapadd.ldif

# $GroupID, $OUIDMAP, $DOMAIN
dn: gidNumber=$GroupID,ou=$OUIDMAP,$BASEDN
objectClass: person
objectClass: sambaIdmapEntry
cn: $GROUPNAME
sn: $GROUPNAME
gidNumber: $GroupID
sambaSID: $DOMAINSID-$GRID

EOF

/usr/bin/ldapadd -D $LDAP_MAN -x -w "$LDAP_MAN_PW" -f /tmp/ldap/idmapadd.ldif
/usr/bin/ldapadd -D $LDAP_MAN -x -w "$LDAP_MAN_PW" -f /tmp/ldap/groupadd.ldif

fi

exit 0

das script setzt eine sauber konfigurierte ldap umgebung und anpassung an die jeweiligen gegebenheiten (siehe variablen) voraus !!!!!

greez

DaQuark
07.04.04, 17:35
ok ich werd mich morgen mal mit dem Problem beschäftigen - mach für heute erstmal Schluss. mit net groupmap del lösch ich die Einträge, oder ? Welche meinst du, sollte ich löschen ?

mfg and thx Marcel

p.s.: ich meld mich morgen wieder

emba
07.04.04, 17:40
lösch mal alle, falls du nicht unbedingt darauf angewiesen bist (produktivbetrieb, ... )

was gibt dir eigentlich

getent group

aus?

greez

jado
07.04.04, 19:48
bzw. was gibt "net groupmap list" aus,
um mal das zu überprüfen...

DaQuark
08.04.04, 11:23
könnt ihr mir mal bitte euer net groupmap list -d0 posten ? ich will nicht alle Einträge löschen, nicht dass danach nix mehr funktioniert .... es geht ja eigentlich nur um eine Gruppe, oder ?

Error: SID not set for unix group 100
check if your unix group is mapped to an NT group

Gruppe 100 ist nicht richtig gesetzt, oder ? Wie muss die Gruppe denn im LDAP aussehen ? Könnt ihr mir mal bitte diese beiden Sachen schreiben ?

THX Marcel

emba
08.04.04, 13:15
@daquark

sag mal, warum liest du eigentlich nicht die doku der samba entwickler zu dem thema?

oben habe ich das script gepostet, wie ein solcher ldap eintrag für eine gruppe incl. IDMAP (bei mir in einer zusätzlichen ou -> ldap idmap suffix = ou=idmap) aussehen muss

beschäftige dich bitte selbst genauer mit dem thema, damit du verstehst, wie das groupmap funktioniert - fertige lösungen zu posten hilft dir am ende gar nicht

greez

DaQuark
08.04.04, 14:29
hast ja vom Prinzip Recht ! Ich sollte mich erstmal in die Thematik einarbeiten, bevor ich mir das Problem von wem anders lösen lasse. Nur wenn solch doofen Fehler auftreten, wozu man nichts findet, wie z.B. der, der jetzt auftritt :


Can't call method "get_value" on an undefined value at /usr/local/sbin/smbldap-useradd line 154

dann muss ich einfach fragen. Hab dazu nichts passenden im Netz gefunden - zwar schon ein paar Beiträge, aber nix, was auf mich zutrifft.

Hm ... na mal schau'n, ob ich's noch hinkrieg - wenn nicht hat jemand den Fehler schonmal gehabt ?