Ich habe nun fast einen monat herumprobiert, ehe ich aufgegeben habe und
alle Samba Datenbanken wieder gelöscht habe um von vorne anfangen zu
können. Was immer ich beim ersten Durchlauf falsch gemacht habe: Nun
habe ich diesen Schritt offenbar weggelassen :)
Damit auch andere von meinen Erfahrungen profitieren können, schreibe
ich mein Vorgehen hier auf:
Eine kurze Übersicht über die Namen der Rechner und der User vorweg:
- linhir: Domänenmitgliedsserver, der User die sich verbinden wollen
am PDC anfragen soll
- mrdomtest: User, der auf einefreigegebene Ressource auf linhir
zugreifen können soll
- mordor: Der NetBIOS Name des PDC
- MFC: Name der Testdomäne
Ich bin dabei nach der offiziellen Dokumentation der Samba
Foundation
vorgegangen. Jedoch habe ich vorher ein paar weitere Schritte gemacht um
sicher zu stellen, das mir kein Fehlerhafter Datenbankeintrag den Erfolg
verwehrt:
- Samba Server auf dem Mitgliedsserver beendet (Daemons smb,
nmb, winbind)
- Alle Dateien die dem Schema *.tdb entsprechen im Verzeichnis
/etc/samba/ und /var/lib/samba/, sowie in deren
Unterverzeichnissen, gelöscht.
- Den Useraccount linhir\$ auf dem PDC aus der Unix
Benutzerdatenbank (passwd/shadow/group) entfernt (userdel -r
linhir\$)
- Maschienenaccount von linhir (linhir\$) aus der Samba
Nutzerdatenbank des PDCs entfernt (pdbedit -x -u linhir\$)
Nun sollte alles wieder auf Ausgangsposition sein.Hier meine smb.conf
des Domänenmitgliedservers linhir:
[global]
workgroup = mfc
security = domain
password server = mordor
netbios name = linhir
server string = MFC Fileserver (%h) running Samba version %v
passdb backend = tdbsam
unix extensions = no
encrypt passwords = yes
wins server = mordor
name resolve order = wins lmhosts host bcast
log file = /server/logs/smb/samba/%m.log
[jukebox]
comment = jukebox
path = /server/data/samba/jukebox
valid users = MFC\mrdomtest
create mask = 0664
directory mask = 0775
browseable = yes
read only = no
So, wenn ich nichts vergessen habe ist das System nun wieder "nackt".
Der Vollständigkeit halber hier auch nochmal meine PDC Konfiguration
(mordor)
[global]
workgroup = mfc
netbios name = mordor
server string = MFC PDC (%h) running Samba version %v
logon script = netlogon.cmd
logon path = \\%h\profiles\%U\%a.msprofile
logon home = \\%h\%u
logon drive = Z:
domain logons = Yes
os level = 190
preferred master = Yes
domain master = Yes
local master = Yes
wins support = Yes
passdb backend = tdbsam
unix extensions = no
security = user
encrypt passwords = yes
name resolve order = lmhosts host wins bcast
time server = Yes
log file = /server/logs/smb/samba/%m.log
log level = 1
add user script = /usr/sbin/useradd -c "Samba Useraccount (auto - add
user script)" -g samba -s /bin/false "%u"
add machine script = /usr/sbin/useradd -c "Samba Maschinenenaccount
(auto - add machine script)" -g machines -s /bin/false "%u"
delete user script = /usr/sbin/userdel "%u"
add group script = /usr/sbin/groupadd "%g"
delete group script = /usr/sbin/groupdel "%g"
add user to group script = /usr/sbin/groupmod -A "%u" "%g"
delete user from group script = /usr/sbin/groupmod -R "%u" "%g"
set primary group script = /usr/sbin/usermod -g "%g" "%u"
[homes]
comment = Home Directory von %u
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[netlogon]
path = /server/service/smb/samba/netlogon/
read only = yes
browseable = no
[profiles]
comment = Network Profiles Service
path = /server/data/smb/samba/ntprofile/
read only = no
browseable = no
create mask = 0660
directory mask = 0770
Ab hier folge ich also der o.g. Doku der Samba
Foundation.
Wie ihr anhand der "add user|machine script"e sehen könnt,
verwende ich die Methode "On-the-Fly Creation of Machine Trust
Accounts", wie sie in der Doku genannt wird.
Weiter steht darin in kürze, das man auf dem Domänenmitgliedsserver nur
folgende Werte ändern braucht:
security = domain
workgroup = %DOMAINNAME
password server = %PDC_NETBIOS_NAME
Ich setze "password server = mordor", um den Wildcard - zweifel zu
beseitigen (Ob der Server das richtig auflösen kann, etc).
Ich starte nun Samba (smb und nmb) auf linhir.
Die *.tdb Datenbankdateien wurden wieder angelegt, was richtig ist.
Die Doku fährt nun wie folgt fort:
net rpc join -S DOMPDC -UAdministrator%password
Auf meine Domäne umgeschlagen entspricht das:
net rpc join -S mordor -U root
Also gebe ich folgendes auf der Shell ein und erhalte folgende Ausgabe:
linhir:/etc/samba # net rpc join -S mordor -U root
Password:
Joined domain MFC.
linhir:/etc/samba #
Hat also alles geklappt.
Der User wurde auf mordor auch gescheit in die passwd, samba Datenbank,
usw eingetragen.
Nächstes laut Doku: Samba Daemons neu starten. OK, also auf linhir
UND mordor nmb und smb neu starten.
Done :)
Nun folgt auch der Hinweis weswegen ich der Meinung bin ich brauche
einen Winbind daemon:
Please refer to Winbind: Use of Domain
Accounts,
for information on a system to automatically assign UNIX UIDs and GIDs
to Windows NT domain users and groups.
Aber OK - bleiben wir zunächst bei der Handarbeit.
Zumal der Punkt "Sharing User ID Mappings between Samba Domain Members"
mal wieder nur eine Methode per LDAP berücksichtigt..
Das wär's dann auch. Mehr ist laut diesem hochoffiziellen Guide nicht zu
tun.
Ausser dieses hier:
Currently, domain security in Samba does not free you from having to
create local UNIX users to represent the users attaching to your server.
This means that if domain user DOM\fred attaches to your domain
security Samba server, there needs to be a local UNIX user fred to
represent that user in the UNIX file system.
Mein Testuser heisst "mrdomtest". Das sich dieser User am PDC
authentifizieren kann, teste ich zunächst indem ich einen zur selben
Domäne hinzugefügten Windows XP Professional Rechner nehme und mich dort
als "mrdomtest" anmelde ... Klappt!
Jetzt ändere ich den Punkt "valid users" des shares
"jukebox" auf linhir wie im Howto als Beispiel für fred
angegeben: MFC\mrdomtest .
Damit Samba auch auf den gleich heissenden Unix User im Filesystem
referieren kann, checke ich ab das es auch diesen gibt, sowie das es
keinen solchen in der Samba Datenbank gibt:
linhir:/etc/samba # grep mrdomtest /etc/passwd
mrdomtest:x:9031:100::/home/mrdomtest:/bin/false
linhir:/etc/samba # pdbedit -L
linhir:/etc/samba #
Nun teste ich mich mit dem Windows XP Domänenrechner mit eingeloggedem
User mrdomtest auf das Share "jukebox" des Servers "linhir"
zu verbinden: Klappt!
Der User "mrdomtest" ist laut Ausgabe des Befehls "pdbedit -L"
auf linhir nach wie vor nicht in der Samba Userdatenbank zu finden.
Also hat alles funktioniert :)
Ich hoffe dieser Beitrag ist dem einen oder anderem eine kleine Hilfe.
Ich freue mich stets über Feedback :)