LWsystems bietet Ihnen Consulting und Support
rund um die Integration von Samba in Ihre IT-Infrastruktur.
Die Passwort-Datenbanken von Unix- und Windows Systemen sind nicht kompatibel. Sie unterscheiden sich unter anderem in der Art der Verschlüsselung der Passwörter (Unix in der Regel crypt(3) oder MD5, Windows früher MD4, heute ?). Die Windows Benutzerdatenbank (SAM = Security Account Manager) speichert zudem noch erheblich mehr benutzerbezogene Daten. Hier seien z.B. die Pfade zu den Benutzerprofilen oder die Maschinen, von denen sich ein Benutzer einloggen darf, genannt.
Aktuelle Windows-Clients senden ausschließlich verschlüsselte Passwörter über das Netzwerk (kann mit einem Eingriff in die Windows- Registry geändert werden). Diese Hashwerte (LanMan bzw. NT Hashes) können nicht mehr in Klartexpasswörter übersetzt werden, so dass die verschlüsselten Passwörter von Windows- und Unixaccounts einzeln mit den jeweiligen Hash-Algorithmen verschlüsselt gespeichert werden müssen.
Die Benutzer von Windows werden mit Hilfe von sogenannten RID (Relative Identifier) und SID (Security Identifier) verwaltet. Die SID besteht dabei aus einer 96 Bit langen ID zur Kennzeichnung der Domäne und der 32 Bit RID langen RID, die den einzelnen Account innerhalb der Domäne eindeutig kennzeichnet.
Ein wesentlicher Unterschied in der Verwaltung der IDs zwischen Windows (RID) und Unix (UID, GID) liegt in der Struktur der Speicherung der IDs. Unix (bzw. POSIX) speichert die Benutzer und Gruppen in zwei unterschiedlichen Datenbanken, so dass hier die gleiche ID sowohl für einen Benutzer als auch für eine Gruppe existieren kann. Bei Windows werden die Benutzer und Gruppen IDs in der gleichen Datenstruktur abgelegt. Die Id wird bei Anlegen eines Benutzers oder einer Gruppe einfach hochgezählt. Das heisst, dass Benutzer und Gruppen nicht dieselbe ID erhalten können.
Der Eintrag für eine Windows RID weist erheblich mehr Attribute als eine entsprechender Unix Datensatz auf.
Samba bildet die SID der Windows Benutzer jeweils auf einer eindeutigen Unix-UID ab. Das heißt, dass für jeden Benutzeraccount und auch für jede Maschinenaccount ein Eintrag in der Unix-Passwortdatenbank enthalten sein muss.
Der PassDB Layer von Samba bildet SID auf der UID ab und umgekehrt.
Bei der Anmeldung an die Domäne werden alle Mitglieder der Gruppe der Domänenadministratoren automatisch auch Mitglieder der (maschinen-) lokalen Gruppe der Administratoren. Sie haben damit sowohl an der lokalen Maschine als auch bezüglich der Domänen die Privilegien von Administratoren.
Samba bildet die Windows-Gruppen auf den Unix- (POSIX) Gruppen ab. Hierbei kann Samba (bis zur Version 3) nur Domänengruppen verwalten. Dabei kann nicht zwischen lokalen und globalen Gruppen unterschieden werden. Die Verwendung von geschachtelten Gruppen (nested groups) ist seit Samba 3.0.3 möglich.
Eine Windows-Installation legt mehrere voreingestellte Accounts und Gruppen an. Die Verwaltung der Berechtigungen erfolgt dabei hauptsächlich durch die Verwaltung der Privilegien, die den einzelne Gruppen zugewiesen werden. Die Gruppe der Administratoren werden dabei die notwendigen Priviliegien zur Verwaltung der jeweiligen Maschine bzw. der Domäne zugewiesen. Alle Benutzer dieser Gruppe haben dabei die notwendigen Privilegien eines Administrators.
| Bezeichnung | RID | Typ |
|---|---|---|
| Domänenadministratoren | 512 | Gruppe |
| Domänenbenutzer | 513 | Gruppe |
| Domänengäste | 514 | Gruppe |
Die hier aufgeführten Gruppen müssen auf jeden Fall in der Domäne vorhanden sein. Sie werden bei der Initialisierung des TDB-Backends automatisch angelegt. Bei Konfiguration des LDAP Backends kann dieses nur schwer implementiert werden. Der Administrator muss in diesem Fall die entsprechenden Einträge selbst in die Datenbank einfügen.
Bei der Verwaltung der Benutzer und Benutzergruppen wird grundsätzlich (unabhängig vom jeweiligen PassDB Backend) folgendermassen vorgegangen:
net
groupmap. Für die Unix-Gruppe "callcenter" und der
entsprechenden Windows-Gruppe "Call Center" wird dernet
Befehl folgendermassen aufgerufen:
net groupmap add ntgroup="Call Center" unixgroup=callcenterDer Befehl kann auch benutzt werden, um die entsprechnden Mappings anzuzeigen:
net groupmap list.