PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba - LDAP nur Standardshell



terpator
29.01.05, 21:01
Hallo!

Ich habe hier einen Server, auf dem Samba und LDAP läuft. Gleichzeitig sind die Linux-Benutzerinformationen im LDAP hinterlegt. Von der Windowsseite her funktioniert auch alles tadellos. Das einzige Problem ist, dass sich Linuxuser zwar anmelden können, es wird aber nur die Standardshell sh und nie die im LDAP hinterlegte bash benutzt.
Führe ich ein finger "user" bzw. getent passw aus, bekomme ich für sämtliche LDAP-User sh als Shell angezeigt bzw. gar nichts


ldap:x:55:55:LDAP User:/var/lib/ldap:/bin/false
mysql:x:100:101:MySQL server:/var/lib/mysql:/bin/bash
Administrator:x:0:512:Netbios Domain Administrator:/home/Administrator:
nobody:x:999:514:nobody:/dev/null:
tobias:x:1002:513:Tobias Terpe:/home/tobias:



Login: tobias Name: Tobias Terpe
Directory: /home/tobias Shell: /bin/sh
Last login Sat Jan 29 20:20 (CET) on pts/0 from horn.terpe.local
No mail.
No Plan.

Im LDAP sind die daten aber gaaanz sicher hinterlegt ;)


# tobias, Users, terpe.local
dn: uid=tobias,ou=Users,dc=terpe,dc=local
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSAMAccount
cn: Tobias Terpe
sn: tobias
uid: tobias
uidNumber: 1002
gidNumber: 513
homeDirectory: /home/tobias
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 2147483647
sambaAcctFlags: [UX]
sambaSID: S-1-5-21-219109939-320394208-166493750-3004
sambaPrimaryGroupSID: S-1-5-21-219109939-320394208-166493750-513
sambaLMPassword: xxxx
sambaNTPassword: xxxx
sambaPwdLastSet: 1099169461
userPassword::xxxx
loginShell: /bin/bash
displayName: Tobias Terpe
sambaKickoffTime: 0
sambaLogonHours: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
sambaLogonScript: KIX32.EXE login.kix
description: Tobias Terpe
gecos: Tobias Terpe


Hat jemand eine Idee, wo ich nach dem Fehler suchen kann? Die Konfiguration habe ich anhand der samba.idealx.org (http://samba.idealx.org) Anleitung durchgeführt. Falls ich noch Dateien posten soll, sagt mir bitte weche :)

Viele Grüße, Tobias

terpator
30.01.05, 20:50
Ich schätze, Linux fragt nicht so richtig beim LDAP-Server nach. Habe mal in meiner /etc.pam.d/system-authenticate nachgeschaut. Da steht u.a. folgendes drin:


auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100
account sufficient /lib/security/$ISA/pam_ldap.so debug
account required /lib/security/$ISA/pam_unix.so use_first_pass
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so

Ich finde, das sieht aber schon richtig aus. Oder steckt hier doch der Fehler?

Habe dann mal in den Logfiles geschaut, da steht folgendes, wenn sich der Benutzer anmeldet:

Jan 30 20:36:37 terpator sshd(pam_unix)[3322]: check pass; user unknown
Jan 30 20:36:37 terpator sshd(pam_unix)[3322]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=horn.terpe.local
Jan 30 20:36:37 terpator sshd(pam_unix)[3324]: session opened for user tobias by (uid=1002)

Sieht soweit auch ok aus, denke ich mal. Der erste Fehler kommt vom lokalen Anmeldeversuch, danach kommt die Anmeldung per LDAP-Authentifizierung. Jedoch in der /var/log/security tauchen folgende Zeilen auf:


Jan 30 20:48:24 terpator sshd[3323]: pam_succeed_if: requirement "uid < 100" not met by user "tobias"
Jan 30 20:48:24 terpator sshd[3323]: Accepted password for tobias from ::ffff:172.20.174.4 port 1122 ssh2
Jan 30 20:48:24 terpator sshd[3323]: nss_ldap: reconnecting to LDAP server...
Jan 30 20:48:24 terpator sshd[3323]: nss_ldap: reconnected to LDAP server after 1 attempt(s)

Das kann ich nicht so wirklich deuten. Die Verbindung zum LDAP wird also wieder hergestellt, aber warum erfolgt eine Trennung :confused:

emba
31.01.05, 10:27
erstens würde ich immer probieren, das ldap-modul mit sufficient vor alle anderen pam-einträge zu setzen

am besten eignet sich dafür zunächst "login"

bsp:
auth sufficient pam_ldap.so
auth required pam_unix.so try_first_pass

wie sieht die /etc/ldap.conf (für NSS) aus?
hast du ACLs gesetzt für LDAP?

greez

terpator
31.01.05, 20:57
Merci =)

Der Tipp mit den ACLs im LDAP hat geholfen. Es fehlte mir das fettgedruckte...


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

Und ich war mir so sicher, die ACLs per Copy & Paste aus der Anleitung übernommen zu haben :cool:

Viele Grüße, Tobias

terpator
31.01.05, 21:37
Hm, so ganz funktioniert es immer noch nicht. Wenn ich mich per ssh am LDAP Server anmelde, bekomme ich nun die richtige Shell zugewiesen. Nun sitze ich an einer normalen Linux Workstation. Wenn ich mich hier anmelde, wird immer noch die sh Shell ausgeführt. "getent passwd" liefert aber komischerweise das richtige Ergebnis.

Any ideas welcome :)

Viele Grüße, Tobias

emba
01.02.05, 10:07
dann kann es vermutlich nur an irgendwelchen pam-einstellungen liegen

greez

terpator
01.02.05, 10:10
Ich werde manl probeweise das PAM Verzeichnis vom Server 1:1 auf den Client kopieren und schauen, ob's was hilft :)

Viele Grüße; Tobias

terpator
01.02.05, 19:47
So, nun läuft es. Obwohl ich seit gestern abend nichts mehr verändert habe :confused:
Mußte wohl irgendein Dienst neu gestartet werden.

Vielen Dank für die Benühungen :)

Tobias

emba
02.02.05, 09:44
Mußte wohl irgendein Dienst neu gestartet werden.
nscd :) (?)

greez

terpator
02.02.05, 17:43
Der Schlingel könnt es gut gewesen sein :)