cephx
Mit diesem Kapitel wird erläutert, wie Sie Daten, die in einem Ceph Cluster gespeichert sind, über eine Samba-/CIFS-Freigabe exportieren, sodass Sie problemlos von Windows*-Client-Computern darauf zugreifen können. Hier erfahren Sie außerdem, wie Sie einen Ceph Samba Gateway für die Einbindung in Active Directory in der Windows*-Domäne konfigurieren, sodass Benutzer damit authentifiziert und autorisiert werden können.
Angesichts des erhöhten Protokoll-Overheads und der zusätzlichen Latenz durch zusätzliche Netzwerk-Hops zwischen Client und Speicher kann ein Zugriff auf CephFS über einen Samba Gateway die Anwendungsleistung im Vergleich zu nativen CephFS- oder Object Gateway-Clients erheblich senken.
Native CephFS- und NFS-Clients sind nicht durch Dateisperren in Samba eingeschränkt und umgekehrt. In Anwendungen, die auf der protokollübergreifenden Dateisperre beruhen, können dort Beschädigungen auftreten, wenn der Zugriff auf CephFS-gestützte Samba-Freigabepfade auf andere Weise erfolgt.
Für die Konfiguration und den Export einer Samba-Freigabe müssen die folgenden Pakete installiert werden: samba-ceph und samba-winbind. Wenn diese Pakete nicht installiert sind, installieren Sie sie:
cephadm@smb >
zypper install samba-ceph samba-winbind
Zur Vorbereitung auf den Export einer Samba-Freigabe wählen Sie einen geeigneten Knoten, der als Samba Gateway fungieren soll. Der Knoten benötigt den Zugriff auf das Ceph-Client-Netzwerk sowie ausreichende CPU-, Arbeitsspeicher- und Netzwerkressourcen.
Die Failover-Funktionalität kann mit CTDB und mit der SUSE Linux Enterprise High Availability Extension zur Verfügung gestellt werden. Weitere Informationen zur HA-Einrichtung finden Sie in Abschnitt 20.1.3, „Hochverfügbarkeitskonfiguration“.
Vergewissern Sie sich, dass sich in Ihrem Cluster bereits ein funktionierendes CephFS befindet. Weitere Informationen finden Sie in Kapitel 11, Installation des CephFS.
Erstellen Sie einen für Samba Gateway spezifischen Schlüsselbund auf dem Ceph Admin Node und kopieren Sie ihn in den Samba Gateway Node:
cephadm@adm >
ceph
auth get-or-create client.samba.gw mon 'allow r' \ osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyringroot@master #
scp
ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/
Ersetzen Sie SAMBA_NODE durch den Namen des Samba Gateway Node.
Die folgenden Schritte werden im Samba Gateway Node ausgeführt. Installieren Sie Samba zusammen mit dem Ceph-Integrationspaket:
cephadm@smb >
sudo zypper in samba samba-ceph
Ersetzen Sie den Standardinhalt der Datei /etc/samba/smb.conf
wie folgt:
[global] netbios name = SAMBA-GW clustering = no idmap config * : backend = tdb2 passdb backend = tdbsam # disable print server load printers = no smbd: backgroundqueue = no [SHARE_NAME] path = / vfs objects = ceph ceph: config_file = /etc/ceph/ceph.conf ceph: user_id = samba.gw read only = no oplocks = no kernel share modes = no
oplocks
(auch als SMB2+-Leases bezeichnet) steigern die Leistung durch aggressives Client-Caching, sind jedoch derzeit unsicher, wenn Samba gemeinsam mit anderen CephFS-Clients implementiert wird, z. B. Kernel-mount.cephfs
, FUSE oder NFS Ganesha.
Wenn der gesamte Zugriff auf die Pfade im CephFS-Dateisystem ausschließlich über Samba abläuft, kann der Parameter oplocks
gefahrlos aktiviert werden.
In einer Freigabe, die mit dem vfs-Modul von CephFS ausgeführt wird, müssen die Kernel-Freigabemodi
derzeit deaktiviert werden, damit die Dateibereitstellung fehlerfrei erfolgt.
Da vfs_ceph
keine Dateisystem-Einhängung benötigt, wird der Freigabepfad als absoluter Pfad im Ceph-Dateisystem im verbundenen Ceph Cluster interpretiert. Für die fehlerfreie Freigabe-E/A muss der Zugriff des zugeordneten Benutzers auf den angegebenen Samba-Client in der Zugriffssteuerungsliste (ACL) des Pfads zugelassen sein. Zum Bearbeiten der ACL können Sie eine temporäre Einhängung über den CephFS-Kernel-Client vornehmen und die Dienstprogramme chmod
, chown
oder setfacl
auf den Freigabepfad anwenden. Mit folgendem Kommando gestatten Sie beispielsweise den Zugriff aller Benutzer:
root #
chmod 777 MOUNTED_SHARE_PATH
Starten und aktivieren Sie den Samba Daemon:
cephadm@smb >
sudo systemctl start smb.servicecephadm@smb >
sudo systemctl enable smb.servicecephadm@smb >
sudo systemctl start nmb.servicecephadm@smb >
sudo systemctl enable nmb.service
Eine Implementierung mit Samba + CTDB und mehreren Knoten bietet eine höhere Verfügbarkeit als ein Einzelknoten (siehe Kapitel 20, Exportieren von Ceph-Daten mit Samba), doch ein clientseitiges, transparentes Failover wird nicht unterstützt. Der Ausfall eines Samba Gateway Nodes führt mit großer Wahrscheinlichkeit zu einer kurzen Unterbrechung für die Anwendungen.
In diesem Abschnitt finden Sie ein Beispiel, wie eine Hochverfügbarkeitskonfiguration aus Samba-Servern mit zwei Nodes eingerichtet wird. Für die Einrichtung ist die SUSE Linux Enterprise High Availability Extension erforderlich. Die beiden Nodes werden earth
(192.168.1.1
) und mars
(192.168.1.2
) genannt.
Detaillierte Informationen zu SUSE Linux Enterprise High Availability Extension finden Sie unter https://www.suse.com/documentation/sle-ha-15/.
Außerdem können Clients über zwei virtuelle IP-Adressen nach dem Floating-IP-Prinzip eine Verbindung mit dem Service herstellen, und zwar unabhängig davon, auf welchem physischen Node er ausgeführt wird. 192.168.1.10
wird für die Cluster-Verwaltung mit Hawk2 verwendet und 192.168.2.1
exklusiv für die CIFS-Exporte. Dies erleichtert später die Anwendung von Sicherheitsbeschränkungen.
Das folgende Verfahren beschreibt das Installationsbeispiel. Weitere Informationen finden Sie unter https://www.suse.com/documentation/sle-ha-15/book_sleha_quickstarts/data/art_sleha_install_quick.html.
Erstellen Sie einen für das Samba Gateway spezifischen Schlüsselbund auf dem Admin Node und kopieren Sie ihn in beide Nodes:
cephadm@adm >
ceph
auth get-or-create client.samba.gw mon 'allow r' \ osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyringroot@master #
scp
ceph.client.samba.gw.keyringearth
:/etc/ceph/root@master #
scp
ceph.client.samba.gw.keyringmars
:/etc/ceph/
Bereiten Sie earth
und mars
darauf vor, den Samba Service zu hosten:
Vergewissern Sie sich, dass die folgenden Pakete installiert sind, bevor Sie fortfahren: ctdb, tdb-tools und samba (für smb- und nmb-Ressourcen erforderlich).
cephadm@smb >
zypper
in ctdb tdb-tools samba samba-ceph
Vergewissern Sie sich, dass die Services ctdb
, smb
und nmb
gestoppt und deaktiviert wurden:
cephadm@smb >
sudo systemctl disable ctdbcephadm@smb >
sudo systemctl disable smbcephadm@smb >
sudo systemctl disable nmbcephadm@smb >
sudo systemctl stop smbcephadm@smb >
sudo systemctl stop nmb
Öffnen Sie Port 4379
Ihrer Firewall in allen Nodes. Dies ist erforderlich, damit CTDB mit anderen Cluster Nodes kommunizieren kann.
Erstellen Sie in earth
die Konfigurationsdateien für Samba. Diese werden später automatisch mit mars
synchronisiert.
Fügen Sie in /etc/ctdb/nodes
alle Nodes ein, die alle privaten IP-Adressen der einzelnen Nodes im Cluster enthalten:
192.168.1.1 192.168.1.2
Konfigurieren Sie Samba. Fügen Sie die folgenden Zeilen im Abschnitt [global]
von /etc/samba/smb.conf
hinzu. Wählen Sie den gewünschten Hostnamen anstelle von "CTDB-SERVER" (alle Nodes im Cluster werden sinnvollerweise als ein großer Node mit diesem Namen angezeigt). Tragen Sie auch eine Freigabedefinition ein (Beispiel unter SHARE_NAME):
[global] netbios name = SAMBA-HA-GW clustering = yes idmap config * : backend = tdb2 passdb backend = tdbsam ctdbd socket = /var/lib/ctdb/ctdb.socket # disable print server load printers = no smbd: backgroundqueue = no [SHARE_NAME] path = / vfs objects = ceph ceph: config_file = /etc/ceph/ceph.conf ceph: user_id = samba.gw read only = no oplocks = no kernel share modes = no
Hierbei zu beachten, dass die Dateien /etc/ctdb/nodes
und /etc/samba/smb.conf
auf allen Samba Gateway Nodes identisch sein müssen.
Installieren Sie den SUSE Linux Enterprise High Availability Cluster und führen Sie ein Bootstrap durch.
Registrieren Sie die SUSE Linux Enterprise High Availability Extension in earth
und mars
:
root@earth #
SUSEConnect
-r ACTIVATION_CODE -e E_MAIL
root@mars #
SUSEConnect
-r ACTIVATION_CODE -e E_MAIL
Installieren Sie ha-cluster-bootstrap in beiden Nodes:
root@earth #
zypper
in ha-cluster-bootstrap
root@mars #
zypper
in ha-cluster-bootstrap
Initialisieren Sie den Cluster in earth
:
root@earth #
ha-cluster-init
Lassen Sie mars
dem Cluster beitreten:
root@mars #
ha-cluster-join
-c earth
Prüfen Sie den Status des Clusters. Sie sollten zwei Nodes sehen, die im Cluster hinzugefügt wurden:
root@earth #
crm
status 2 nodes configured 1 resource configured Online: [ earth mars ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started earth
Führen Sie die folgenden Kommandos in earth
aus, um die CTDB-Ressource zu konfigurieren:
root@earth #
crm
configurecrm(live)configure#
primitive
ctdb ocf:heartbeat:CTDB params \ ctdb_manages_winbind="false" \ ctdb_manages_samba="false" \ ctdb_recovery_lock="!/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper ceph client.samba.gw cephfs_metadata ctdb-mutex" ctdb_socket="/var/lib/ctdb/ctdb.socket" \ op monitor interval="10" timeout="20" \ op start interval="0" timeout="200" \ op stop interval="0" timeout="100"crm(live)configure#
primitive
nmb systemd:nmb \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"crm(live)configure#
primitive
smb systemd:smb \ op start timeout="100" interval="0" \ op stop timeout="100" interval="0" \ op monitor interval="60" timeout="100"crm(live)configure#
group
g-ctdb ctdb nmb smbcrm(live)configure#
clone
cl-ctdb g-ctdb meta interleave="true"crm(live)configure#
commit
Die Binärdatei /usr/lib64/ctdb/ctdb_mutex_rados_helper
in der Konfigurationsoption ctdb_recovery_lock
enthält die Parameter CLUSTER_NAME, CEPHX_USER, RADOS_POOL und RADOS_OBJECT (in dieser Reihenfolge).
Wenn Sie einen zusätzlichen Parameter für die Sperren-Zeitüberschreitung anhängen, können Sie den Standardwert (10 Sekunden) überschreiben. Bei einem höheren Wert wird die Failover-Zeit des CTDB Recovery Master verlängert, bei einem niedrigeren Wert wird der Recovery Master dagegen unter Umständen fälschlich als ausgefallen erkannt, sodass ein ungeplantes Failover ausgeführt wird.
Fügen Sie eine geclusterte IP-Adresse hinzu:
crm(live)configure#
primitive
ip ocf:heartbeat:IPaddr2 params ip=192.168.2.1 \ unique_clone_address="true" \ op monitor interval="60" \ meta resource-stickiness="0"crm(live)configure#
clone
cl-ip ip \ meta interleave="true" clone-node-max="2" globally-unique="true"crm(live)configure#
colocation
col-with-ctdb 0: cl-ip cl-ctdbcrm(live)configure#
order
o-with-ctdb 0: cl-ip cl-ctdbcrm(live)configure#
commit
Wenn unique_clone_address
auf true
festgelegt ist, fügt der Ressourcenagent IPaddr2 eine Klon-ID zur angegebenen Adresse hinzu, was zu drei verschiedenen IP-Adressen führt. Diese werden normalerweise nicht benötigt, sind jedoch nützlich beim Lastausgleich. Weitere Informationen zu diesem Thema finden Sie unter https://www.suse.com/documentation/sle-ha-15/book_sleha_guide/data/cha_ha_lb.html.
Überprüfen Sie das Ergebnis:
root@earth #
crm
status Clone Set: base-clone [dlm] Started: [ factory-1 ] Stopped: [ factory-0 ] Clone Set: cl-ctdb [g-ctdb] Started: [ factory-1 ] Started: [ factory-0 ] Clone Set: cl-ip [ip] (unique) ip:0 (ocf:heartbeat:IPaddr2): Started factory-0 ip:1 (ocf:heartbeat:IPaddr2): Started factory-1
Testen Sie es an einem Client-Rechner. Führen Sie auf einem Linux Client das folgende Kommando aus, um zu sehen, ob Sie Dateien vom und zum System kopieren können:
root #
smbclient
//192.168.2.1/myshare
Sie können den Ceph Samba Gateway als Mitglied der Samba-Domäne mit Active Directory(AD)-Unterstützung konfigurieren. Als Samba-Domänenmitglied können Sie Domänenbenutzer und Gruppen in lokalen Zugriffssteuerungslisten (ACLs) für Dateien und Verzeichnisse aus dem exportierten CephFS verwenden.
Dieser Abschnitt enthält die vorbereitenden Schritte vor der eigentlichen Samba-Konfiguration. Der Einstieg mit einer sauberen Umgebung trägt dazu bei, eventuelle Verwirrungen zu vermeiden, und sorgt dafür, dass keine Dateien aus der früheren Samba-Installation mit der neuen Domänenmitglieds-Installation vermischt werden.
Die Uhren aller Samba Gateway Nodes müssen mit dem Active Directory-Domänencontroller synchronisiert werden. Ein Taktversatz kann zu Authentifizierungsfehlern führen.
Es dürfen keine Samba- oder Name-Caching-Prozesse ausgeführt werden:
cephadm@smb >
ps ax | egrep "samba|smbd|nmbd|winbindd|nscd"
Wenn samba
-, smbd
-, nmbd
-, winbindd
- oder nscd
-Prozesse in der Ausgabe aufgeführt werden, halten Sie diese Prozesse.
Wenn zuvor eine Samba-Installation auf diesem Host ausgeführt wurde, entfernen Sie die Datei /etc/samba/smb.conf
. Entfernen Sie auch alle Samba-Datenbankdateien, z. B. *.tdb
- und *.ldb
-Dateien. Mit folgendem Kommando rufen Sie eine Liste der Verzeichnisse ab, in denen sich Samba-Datenbanken befinden:
cephadm@smb >
smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
Active Directory (AD) sucht mithilfe des DNS nach anderen Domänencontrollern (DCs) und Services wie Kerberos. Die AD-Domänenmitglieder und Server müssen daher in der Lage sein, die AD-DNS-Zonen aufzulösen.
Prüfen Sie, ob der DNS ordnungsgemäß konfiguriert wurde und ob sowohl die Vorwärts- als auch die Rückwärtssuche fehlerfrei aufgelöst werden, beispielsweise:
cephadm@adm >
nslookup DC1.domain.example.com
Server: 10.99.0.1
Address: 10.99.0.1#53
Name: DC1.domain.example.com
Address: 10.99.0.1
cephadm@adm >
10.99.0.1
Server: 10.99.0.1
Address: 10.99.0.1#53
1.0.99.10.in-addr.arpa name = DC1.domain.example.com.
AD sucht mithilfe des SRV nach Services wie Kerberos und LDAP. Prüfen Sie mit der interaktiven nslookup
-Shell, ob die SRV-Datensätze fehlerfrei aufgelöst werden, beispielsweise:
cephadm@adm >
nslookup
Default Server: 10.99.0.1
Address: 10.99.0.1
> set type=SRV
> _ldap._tcp.domain.example.com.
Server: UnKnown
Address: 10.99.0.1
_ldap._tcp.domain.example.com SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = dc1.domain.example.com
domain.example.com nameserver = dc1.domain.example.com
dc1.domain.example.com internet address = 10.99.0.1
Samba unterstützt Heimdal- und MIT-Kerberos-Back-Ends. Zum Konfigurieren von Kerberos auf dem Domänenmitglied legen Sie Folgendes in der Datei /etc/krb5.conf
fest:
[libdefaults] default_realm = DOMAIN.EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true
Im obigen Exempel wird Kerberos für den Bereich DOMAIN.EXAMPLE.COM konfiguriert. Es wird nicht empfohlen, weitere Parameter in der Datei /etc/krb5.conf
festzulegen. Wenn die Datei /etc/krb5.conf
eine Zeile include
enthält, funktioniert sie nicht; Sie müssen diese Zeile entfernen.
Wenn Sie einen Host in die Domäne aufnehmen, versucht Samba, den Hostnamen in der AT-DNS-Zone zu registrieren. Hierzu muss das Dienstprogramm net
in der Lage sein, den Hostnamen mit DNS oder mit einem passenden Eintrag in der Datei /etc/hosts
aufzulösen.
Prüfen Sie mit dem Kommando getent hosts
, ob der Hostname fehlerfrei aufgelöst wird:
cephadm@adm >
getent hosts example-host
10.99.0.5 example-host.domain.example.com example-host
Der Hostname und der FQDN dürfen nicht zur IP-Adresse 127.0.0.1 oder zu einer anderen IP-Adresse aufgelöst werden, die nicht mit der IP-Adresse der LAN-Schnittstelle des Domänenmitglieds übereinstimmt. Wenn keine Ausgabe angezeigt oder der Host zu einer falschen IP-Adresse aufgelöst wird und Sie nicht mit DHCP arbeiten, legen Sie den richtigen Eintrag in der Datei /etc/hosts
fest:
127.0.0.1 localhost 10.99.0.5 example-host.samdom.example.com example-host
/etc/hosts
Wenn Sie DHCP verwenden, darf /etc/hosts
nur die Zeile „127.0.0.1“ enthalten. Bleiben die Probleme weiterhin bestehen, wenden Sie sich an den Administrator Ihres DHCP-Servers.
Sollen Aliasnamen für den Namen des Computers eingefügt werden, tragen Sie sie am Ende der Zeile ein, die mit der IP-Adresse des Computers beginnt, nicht in die Zeile „127.0.0.1“.
Diesem Abschnitt werden spezielle Konfigurationsoptionen vorgestellt, die Sie in die Samba-Konfigurationsdatei /etc/samba/smb.conf
aufnehmen müssen.
winbindd
#Wenn die Benutzer unterschiedliche Login-Shells und/oder Unix-Basisverzeichnispfade erhalten oder stets dieselbe ID nutzen sollen, verwenden Sie das winbind-Back-End „ad“ und nehmen Sie RFC2307-Attribute in AD auf.
Die RFC2307-Attribute werden beim Erstellen von Benutzern oder Gruppen nicht automatisch hinzugefügt.
Die ID-Nummern auf einem DC (Nummern im Bereich ab 3.000.000) sind keine RFC2307-Attribute und werden nicht auf Unix-Domänenmitgliedern verwendet. Sollen stets dieselben ID-Nummern gelten, nehmen Sie die Attribute uidNumber
und gidNumber
in AD auf und verwenden Sie das winbind-Back-End „ad“ auf Unix-Domänenmitgliedern. Sollen die Attribute uidNumber
und gidNumber
dennoch in AD aufgenommen werden, geben Sie keine Zahlen im Bereich ab 3.000.000 an.
Wenn Ihre Benutzer den Samba-AD-DC lediglich zur Authentifizierung heranziehen, also keine Daten dort speichern und sich nicht dort anmelden, können Sie das winbind-Back-End „rid“ heranziehen. Hiermit werden die Benutzer- und Gruppen-IDs über die Windows*-RID berechnet. Wenn Sie auf jedem Unix-Domänenmitglied denselben Abschnitt [global]
in der Datei smb.conf
nutzen, erhalten Sie stets dieselben IDs. Beim Back-End „rid“ müssen Sie keine Ergänzungen in AD vornehmen und die RFC2307-Attribute werden ignoriert. Legen Sie beim Back-End „rid“ die Parameter template shell
und template homedir
in smb.conf
fest. Diese Einstellungen gelten global und alle Benutzer erhalten dieselbe Login-Shell und denselben Unix-Basisverzeichnispfad (im Gegensatz zu den RFC2307-Attributen, mit denen Sie individuelle Unix-Basisverzeichnispfade und Shells angeben können).
Für die Einrichtung von Samba steht eine weitere Möglichkeit zur Auswahl: Ihre Benutzer und Gruppen erhalten stets dieselbe ID, doch nur die Benutzer erhalten jeweils dieselbe Login-Shell und denselben Unix-Basisverzeichnispfad. Dies erreichen Sie mit dem winbind-Back-End „ad“ und den Schablonenzeilen in smb.conf
. So müssen Sie lediglich die Attribute uidNumber
und gidNumber
in AD aufnehmen.
Weitere Informationen zu den verfügbaren Back-Ends für die ID-Zuordnung finden Sie auf den jeweiligen Handbuchseiten: man 8 idmap_ad
, man 8 idmap_rid
und man 8 idmap_autorid
.
Sobald Sie sich für ein winbind-Back-End entschieden haben, legen Sie die Bereiche für die Option idmap config
in smb.conf
fest. Auf einem Unix-Domänenmitglied befinden sich standardmäßig mehrere Blöcke mit Benutzer- und Gruppen-IDs:
IDs | Bereich |
---|---|
0-999 | Lokale Systembenutzer und -gruppen. |
Ab 1.000 | Lokale UNIX-Benutzer und -Gruppen. |
Ab 10.000 | DOMAIN-Benutzer und -Gruppen. |
Wie aus den obigen Bereichen hervorgeht, darf weder der Bereich „*“ noch der Bereich „DOMAIN“ bei 999 oder weniger beginnen, da diese IDs mit den lokalen Systembenutzern und -gruppen in Konflikt kämen. Lassen Sie außerdem genug Platz für lokale Unix-Benutzer und -Gruppen. idmap config
-Bereiche ab 3.000 sind daher ein guter Kompromiss.
Überlegen Sie, inwieweit Ihre „DOMAIN“ noch wachsen wird und ob Sie verbürgte Domänen einplanen sollten. Anschließend können Sie die idmap config
-Bereiche wie folgt festlegen:
Domäne | Bereich |
---|---|
* | 3000-7999 |
DOMAIN | 10000-999999 |
TRUSTED | 1000000-9999999 |
root
-Benutzer #In Samba können Sie Domänenkonten einem lokalen Konto zuordnen. Mit dieser Funktion können Sie Dateioperationen als ein anderer Benutzer auf dem Dateisystem des Domänenmitglieds ausführen, also nicht mit dem Konto, das die betreffende Operation auf dem Client angefordert hat.
Die Zuordnung des Domänenadministrators zum lokalen root
-Konto ist optional. Konfigurieren Sie die Zuordnung nur dann, wenn der Domänenadministrator in der Lage sein muss, Dateioperationen auf dem Domänenmitglied mit root
-Berechtigungen auszuführen. Beachten Sie, dass Sie sich auch nach Zuordnung des Administrators zum root
-Konto nicht als „Administrator“ bei Unix-Domänenmitgliedern anmelden können.
So ordnen Sie den Domänenadministrator dem lokalen root
-Konto zu:
Tragen Sie den folgenden Parameter im Abschnitt [global]
der Datei smb.conf
ein:
username map = /etc/samba/user.map
Erstellen Sie die Datei /etc/samba/user.map
mit folgendem Inhalt:
!root = DOMAIN\Administrator
Wenn Sie das ID-Zuordnungs-Back-End „ad“ verwenden, legen Sie nicht das Attribut uidNumber
für das Domänenadministratorkonto fest. Ist das Attribut für das Konto festgelegt, überschreibt der Wert die lokale UID „0“ des root
-Benutzers und die Zuordnung schlägt fehl.
Weitere Informationen finden Sie unter dem Parameter username map
auf der Handbuchseite zu smb.conf
(man 5 smb.conf
).
Mit folgendem Kommando binden Sie den Host in Active Directory ein:
cephadm@smb >
net ads join -U administrator
Enter administrator's password: PASSWORD
Using short domain name -- DOMAIN
Joined EXAMPLE-HOST to dns domain 'DOMAIN.example.com'
Domänenbenutzer und -gruppen stehen nur dann im lokalen System zur Verfügung, wenn Sie die NSS-Bibliothek (Name Service Switch) aktivieren. Ergänzen Sie die folgenden Datenbanken in der Datei /etc/nsswitch.conf
mit dem Eintrag winbind
:
passwd: files winbind group: files winbind
Behalten Sie den Eintrag files
als erste Quelle für beide Datenbanken bei. So kann NSS die Domänenbenutzer und -gruppen in den Dateien /etc/passwd
und /etc/group
nachschlagen, bevor eine Abfrage an den winbind
-Dienst erfolgt.
Nehmen Sie den Eintrag winbind
nicht in die NSS-Shadow
-Datenbank auf. Dies kann dazu führen, dass das wbinfo
-Dienstprogramm fehlschlägt.
Verwenden Sie in der lokalen Datei /etc/passwd
nicht dieselben Benutzernamen wie in der Domäne.
Für ein voll funktionsfähiges Unix-Domänenmitglied müssen drei Services aktiviert und gestartet werden: smbd
, nmbd
und winbindd
. Aktivieren und starten Sie sie mit folgenden Kommandos:
cephadm@smb >
sudo systemctl enable smbd.service && systemctl start smbd.servicecephadm@smb >
sudo systemctl enable nmbd.service && systemctl start nmbd.servicecephadm@smb >
sudo systemctl enable winbindd.service && systemctl start winbindd.service
nmbd
Falls Sie keine Netzwerksuche benötigen, müssen Sie den nmbd
-Service nicht auf einem Unix-Domänenmitglied aktivieren und starten.
winbindd
-Konnektivität #winbindd
-Pings #
So prüfen Sie, ob der winbindd
-Service eine Verbindung zu AD-Domänencontrollern (DC) oder zu einem Primärdomänencontroller (PDC) herstellen kann:
cephadm@smb >
wbinfo --ping-dc
checking the NETLOGON for domain[DOMAIN] dc connection to "DC.DOMAIN.EXAMPLE.COM" succeeded
Falls das obige Kommando fehlschlägt, prüfen Sie, ob der winbindd
-Service ausgeführt wird und die Datei smb.conf
ordnungsgemäß eingerichtet ist.
Mithilfe der Bibliothek libnss_winbind
können Sie Domänenbenutzer und -gruppen nachschlagen. So schlagen Sie beispielsweise den Domänenbenutzer „DOMAIN\demo01“ nach:
cephadm@smb >
getent passwd DOMAIN\\demo01
DOMAIN\demo01:*:10000:10000:demo01:/home/demo01:/bin/bash
So schlagen Sie die Domänengruppe „Domain Users“ nach:
cephadm@smb >
getent group "DOMAIN\\Domain Users"
DOMAIN\domain users:x:10000:
Mithilfe der NSS-Bibliothek (Name Service Switch) können Sie Domänenbenutzerkonten und -gruppen in Kommandos heranziehen. So legen Sie beispielsweise den Domänenbenutzer „demo01“ als Eigentümer einer Datei und die Domänengruppe „Domain Users“ als Gruppe fest:
cephadm@smb >
chown "DOMAIN\\demo01:DOMAIN\\domain users" file.txt