• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] - Samba-Authentifizierung und HOME-Verzeichnisse

Ich pflege die Windows-Clients und mache die Benutzerverwaltung in einem Samba-Netzwerk. Da mir die Verwaltung der vielen Clients zu aufwendig geworden ist, habe ich mich an Linux und einer LTSP-Terminal-Lösung mit Erfolg versucht.

Nun stehe ich vor dem Problem der Nutzerverwaltung auf dem Terminalserver. Es macht wenig Sinn eine neue Benutzerverwaltung anzufangen, da diese ja schon mit dem Samba-Server vorhanden ist. Ich habe schon viel gegoogelt, aber nichts gefunden bzw. verstanden. Bei ähnlich Fragen in anderen Foren wird regelmäßig mit dem Verweis auf NFS und NIS geantwortet. Da ich auf den Server aber nur eingeschränkten Zugriff habe, ist dies für mich keine Lösung.

Mit YAST habe ich die Samba-Authentifizierung natürlich schon versucht. Die Anmeldung in der Domäne ist auch kein Problem, bloß schlägt das Login mit Domäne\Username fehl (Xssession: Login for ... disabled).

Kennt jemand eine Möglichkeit, sich vom Linux-Client aus am Samba-Server anzumelden und die Home-Verzeichnisse vom Server zu mounten?

Für jeden Tipp bin ich dankbar.

TrialAndError

edit Mod: auf gelöst gesetzt 18.11.05
 

Yehudi

Guru
Eigentlich sollte das Problemlos möglich sein. Wenn es nicht funktioniert, kann es an der conf Datei liegen. Das beste wäre, wenn Du die smb.config postest.
Windows durchsucht ja eigentlich das Netz selber nach verfügbaren Servern.
 

ThomasF

Hacker
Hmm, die Frage ist was Du nun wirklich möchtest ???

Möchtest Du die reine Authentifizierung über Samba machen ?
Also Terminalserver -> Samba.
Dann schau Dir mal winbind an ...

http://gertranssmb3.berlios.de/output/winbind.html

Kennt jemand eine Möglichkeit, sich vom Linux-Client aus am Samba-Server anzumelden und die Home-Verzeichnisse vom Server zu mounten?

Das ist eine andere Geschichte -> man mount

Du must dabei aber auf jeden Fall Username und Passwort angeben ...

So long

ThomasF
 
OP
T

TrialAndError

Member
Vielen Dank für eure Antworten.

@ Yehudi
Deine Antwort habe ich nicht verstanden. Die Anmeldung mit Windows-Clients funktioniert problemlos. Auch die Anmeldung an die Domäne mit YAST funktioniert. Anschließend sind auch die Samba-User im Anmeldungsmanger zu sehen. Ein Login schlägt jedoch fehl.

@ ThomasF
Das winbind-HOW-TO habe ich gelesen und entsprechen nscd-Dienst gestoppt. smb.conf des Servers mit und ohne die vorgeschlagenen global-Einstellungen probiert. Auch die PAM-Einstellungen habe ich probiert. Danach ging bloß nichts mehr.

man mount gut und schön. Bloß wo und wie, damit ein User kein lokales HOME bekommt, sondern ein gemountetes.


Anbei die smb.conf


[global]
workgroup = TEST-NETZ
os level = 65
netbios name = server
security = user
encrypt passwords = Yes
guest account = Nobody
map to guest = Bad User
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
idmap uid = 10001-19999
idmap gid = 10001-19999
winbind enum users = yes
winbind enum groups = yes



# If you want Samba to act as a wins server, please set
# 'wins support' to yes.
wins support = Yes



# Set these two parameters to your DOS code page and appropriate UNIX
# character set. These values are for west European languages (Latin-9)
# UNIX character and MS-DOS Latin 1 code page.
character set = ISO8859-15
client code page = 850


# Do you wan't samba to act as a logon-server for your windows 95/98
# clients, so uncomment the following:
domain logons = Yes
domain master = Yes
preferred master = Yes
domain admin group = @dadmin

# For a specific logon script per user
logon script = %U.bat


add user script = /usr/sbin/useradd -g machines -c Machine -d /tmp/nobody -s /bin/false %m$

logon home = \\server\%U
logon path =
logon drive = y:

# Where to store the logon scripts.
[netlogon]
comment = Network Logon Service
path = /home/netlogon
browsable = No
read only = Yes



[homes]
comment = Heimatverzeichnis
read only = No
create mask = 0775
directory mask = 0777
browseable = No
dos filetime resolution = true
 
Suchst du z.B. pam-mount? Das mountet Homeverzeichnisse eines Users wenn er sich anmeldet, ganz nette Sachen für Linux-Clients die lokale Konsole und X usw. haben.
 
OP
T

TrialAndError

Member
Hallo jengelh, danke für den Tipp.

Das Programm würde mein entscheidendes Problem lösen. Leider habe ich außer dem dazugehörigen README keinerlei Informationen gefunden. Außer dem Compilieren sehe ich vor Allem das Problem, dass ich wieder an den PAM-configs basteln muss, und da fehlt mir leider vollständig das Verständnis. Hast du vielleicht Erfahrung mit pam-mount auf SUSE?

Natürlich bliebe noch das Problem, Benutzernamen und Passwortüberprüfung über den Samba-Server laufen zu lassen.

Funktioniert die YAST-Samba-Authentifizierung überhaupt bei jemandem? Und wenn ja, was bedeutet sie konkret? Tut mir leid, ich habe beim Googeln nichts gefunden.

Grüße
 

rolle

Guru
Die smb.conf ist Blödsinn. Sie definiert den Termialserver als PDC, Du hast aber bereits einen in der Domäne, das kann nur zu Problemen führen. Genauso ist unwahrscheinlich, daß der vorhandene PDC nicht auch WINS ist, zwei WINS gleichzeitig gehen nicht. Security müßte sinnigerweise wohl auf Domain stehen. Der OS Level muß niedriger als der des PDC sein.
 
OP
T

TrialAndError

Member
Hallo roland,

die smb.conf stammt vom Samba-Server (PDC).

Brauche ich auch einen Samba-Server-Dienst auf dem Terminalserver?!

Grüße
 
OP
T

TrialAndError

Member
Bitte korrigiert mich, wenn ich falsch liege:

Googeln und Herumprobieren legen nahe, dass der Punkt "Zusätzlich SMB-Informationen zur Linux-Authentifikation verwenden" eher dekorative Funktion hat. (Na gut, er installiert das winbind-Paket und passt nsswitch.conf an. :roll:) Aber das eigentliche Problem, die Anpassung der Dateien in pam.d, überlässt YAST dem geneigten User.

Zwar bin ich ein geneigter User, aber PAM ist relativ kompliziert, Informationen sehr rar und die Einstellungen zudem von Distribution zu Distribution unterschiedlich.

Kann vielleicht vielleicht jemand eine funktionierende /pam.d/xdm für SUSE 9.2, 9.3 oder 10.0 OSS posten?

Kann jemand sagen wozu /pam.d/xdm-np gut ist?

Danke im Voraus.
 

Dr. Glastonbury

Advanced Hacker
Hmmm - also du willst die /homes, die zur Zeit auf dem Samba-Server liegen als homes für die LT-User haben? In diesem Fall würde ich vorschlagen nicht etwa irgendein pam-smbmount-Modul zu laden, sondern einfach per NFS den Ordner, der auf dem Samba server liegt am LT-Server nach /home zu mounten!

Das erspart dir nen Haufen ärger! Da du ja auch schon die User am Sambaserver erstellt hast wäre evtl. auch eine Sinnvollere lösung das ganze auf LDAP umzustellen - denn Linuces (lateinischer Plural von Linux) können sich wunderbar über LDAP ihre User holen.

An Samba-Authetifizierung über Winbind hab ich mir auch schonmal die Finger wund gebissen! Zu Hause hatte ich dafür nen Windows2003-Server... da ging alles wunderbar und ich war voller zuversicht, dass das ganze an dem eigentlichen Server nun auf funzt - nix wars! Der WinServer, denn ich schließlich zur Verfügung hatte wollte partout nicht!

Eine Notlösung mist Kerberos und dem Useradd-Script hat mich dann noch gerettet^^, aber winbind wollte auf einmal nicht mehr!

Das HowTo mit dem es zumindest zu Hause einwandfrei funktioniert hatte wärehier: http://gertranssmb3.berlios.de/output/winbind.html
 
OP
T

TrialAndError

Member
Der Thread ist zwar schon lange auf gelöst gesetzt, aber eine Lösung poste ich erst jetzt: ;-)

Wie ich oben schon sagte, passt YAST lediglich die nsswitch.conf an und sorgt darüber hinaus auch für die Anmeldung an die Domäne. Darüber hinaus schreibt es noch eine smb.conf für winbindd :!: auf dem Client/Terminalserver :!:. Nachdem ich diese gemäß HowTo bearbeitet hatte, kam Schwung in die Sache:


smb.conf

[global]
winbind separator = + :!:
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind cache time = 15
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
idmap gid = 10000-20000
idmap uid = 10000-20000
workgroup = TEST-NETZ
winbind use default domain = yes :!:


Wichtig dabei ist das "+". Andere Zeichen funktionierten bei mir nicht im Zusammenspiel mit pam-mount.

Google sei dank, habe ich auch eine Lösung für /pam.d/xdm herausgefunden:


/pam.d/xdm

#%PAM-1.0

auth required pam_env.so
auth optional pam_mount.so
auth sufficient pam_winbind.so use_first_pass
auth required pam_unix2.so use_first_pass

account sufficient pam_winbind.so
account required pam_unix2.so

password required pam_unix2.so

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_mount.so
session required pam_unix2.so
session required pam_devperm.so
session required pam_resmgr.so


Für die Samba-Authentifizierung ist pam_mkhomdir unerlässlich, denn der Samba-User hat ja im Normalfall kein Home auf dem Linux-Client (hier: dem Terminalserver). Ich mounte, das Samba-Home nicht als Client-Home, sondern als "Permanentes_Verzeichnis" im frisch erstellten Home.

In /home muss noch ein Verzeichnis mit dem workgroup-Namen erstellt werden (hier: /home/TEST-NETZ) :!:

Sieht einfach aus, wenn man es verstanden hat. 8)

pam-mount gibt es natürlich über apt :oops: und ist ziemlich gut kommentiert. Bei mir half folgende Zeile am Ende von /etc/security/pam_mount.conf

volume * smb <samba-server's ip> & ~/Permanentes_Verzeichnis - - -

YAST hat (gemäß HowTo) noch vergessen nscd auf dem Client abzuschalten.

Fertig.

Neben veschiedenen Dokumentationen zu PAM hat mir folgende Seite besonders geholfen:

http://www.linuxquestions.org/questions/showthread.php?s=&threadid=155887


Grüße: TrialAndError
 
Dr. Glastonbury schrieb:
Hmmm - also du willst die /homes, die zur Zeit auf dem Samba-Server liegen als homes für die LT-User haben? In diesem Fall würde ich vorschlagen nicht etwa irgendein pam-smbmount-Modul zu laden, sondern einfach per NFS den Ordner, der auf dem Samba server liegt am LT-Server nach /home zu mounten!
Dann hast du das Risiko, dass jemand sein Laptop mitbringt wo er root hat, das NFS-Share mountet und rm -Rf o.ä. macht.
 
Oben