Samba Installation · 7 min read · Dec 14, 2025
Samba 4 mit Active Directory auf CentOS 7 rpm-basierte Installation mit Freigabeverwaltung
Im letzten Tutorial habe ich Ihnen gezeigt, wie Sie Samba auf CentOS 7 konfigurieren, indem Sie Samba aus dem Quellcode kompilieren, da das von RedHat bereitgestellte Paket Active Directory nicht unterstützt. Ich habe festgestellt, dass es ein Repository namens Wing gibt, das das samba4 rpm mit AD-Unterstützung bereitstellt. In diesem Tutorial werde ich dieses Repository für die Samba-Installation verwenden. Ich werde auch zeigen, wie man eine Samba-Freigabe erstellt.
In diesem Tutorial werde ich einen CentOS 7-Server mit einer Minimalinstallation als Basis verwenden, wobei SELinux aktiviert ist.
Bereiten Sie den CentOS 7-Server vor
Überprüfen Sie den SELinux-Status.
[root@samba4 ~]# sestatus
SELinux-Status: aktiviert
SELinuxfs-Mount: /sys/fs/selinux
SELinux-Stammverzeichnis: /etc/selinux
Geladene Richtlinienname: targeted
Aktueller Modus: enforcing
Modus aus der Konfigurationsdatei: enforcing
Richtlinien-MLS-Status: aktiviert
Richtlinien-unknown ablehnen-Status: erlaubt
Maximale Kernel-Richtlinienversion: 28
[root@samba4 ~]#
Erstellen Sie einen Eintrag in der Host-Datei mit der IP-Adresse des Servers, gefolgt vom vollständigen (fqdn) Hostnamen und dann dem lokalen Teil des Hostnamens.
[root@samba4 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.190 samba4.sunil.cc samba4
[root@samba4 ~]#
Installieren Sie das Epel CentOS-Repository.
[root@samba4 ~]# yum install epel-release -yInstallieren Sie die grundlegenden Pakete.
[root@samba4 ~]# yum install vim wget authconfig krb5-workstation -y
Jetzt installieren Sie das Wing-Repo.
[root@samba4 ~]# cd /etc/yum.repos.d/
[root@samba4 yum.repos.d]# wget http://wing-net.ddo.jp/wing/7/EL7.wing.repo
[root@samba4 yum.repos.d]# sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/EL7.wing.repo
[root@samba4 yum.repos.d]# yum clean all
Geladene Plugins: fastestmirror
Bereinigen der Repos: base extras updates wing wing-source
Bereinigen von allem
Bereinigen der Liste der schnellsten Spiegel
[root@samba4 yum.repos.d]#
Installieren Sie Samba 4 auf CentOS 7
Installation der Samba4-Pakete aus dem Wing-Repository mit yum.
[root@samba4 yum.repos.d]# yum install -y samba45 samba45-winbind-clients samba45-winbind samba45-client\
samba45-dc samba45-pidl samba45-python samba45-winbind-krb5-locator perl-Parse-Yapp\
perl-Test-Base python2-crypto samba45-common-tools
Entfernen Sie diese Dateien.
[root@samba4 ~]# rm -rf /etc/krb5.conf
[root@samba4 ~]# rm -rf /etc/samba/smb.conf
Samba 4-Konfiguration
Jetzt werden wir die Domänenbereitstellung durchführen.
[root@samba4 ~]# samba-tool domain provision --use-rfc2307 --interactive
Realm [SUNIL.CC]:
Domain [SUNIL]:
Serverrolle (dc, member, standalone) [dc]:
DNS-Backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS-Weiterleitungs-IP-Adresse (schreiben Sie 'none', um die Weiterleitung zu deaktivieren) [4.2.2.1]:
Administrator-Passwort:
Passwort erneut eingeben:
Suche nach IPv4-Adressen
Suche nach IPv6-Adressen
Es wird keine IPv6-Adresse zugewiesen
Einrichten von secrets.ldb
Einrichten des Registrierungsdienstes
Einrichten der Berechtigungsdatenbank
Einrichten der idmap-Datenbank
Einrichten der SAM-Datenbank
Einrichten der sam.ldb-Partitionen und -Einstellungen
Einrichten von sam.ldb rootDSE
Vorladen des Samba 4- und AD-Schemas
Hinzufügen von DomainDN: DC=sunil,DC=cc
Hinzufügen des Konfigurationscontainers
Einrichten des sam.ldb-Schemas
Einrichten der Konfigurationsdaten von sam.ldb
Einrichten der Anzeige-Spezifizierer
Ändern der Anzeige-Spezifizierer
Hinzufügen des Benutzerscontainers
Ändern des Benutzerscontainers
Hinzufügen des Computercontainers
Ändern des Computercontainers
Einrichten der sam.ldb-Daten
Einrichten der bekannten Sicherheitsprinzipale
Einrichten der sam.ldb-Benutzer und -Gruppen
Einrichten des Selbstjoins
Hinzufügen von DNS-Konten
Erstellen von CN=MicrosoftDNS,CN=System,DC=sunil,DC=cc
Erstellen von DomainDnsZones- und ForestDnsZones-Partitionen
Bevölkerung der DomainDnsZones- und ForestDnsZones-Partitionen
Einrichten von sam.ldb rootDSE als synchronisiert
Beheben der Bereitstellungs-GUIDs
Eine Kerberos-Konfiguration, die für Samba 4 geeignet ist, wurde unter /var/lib/samba/private/krb5.conf generiert
Einrichten von gefälschten yp-Servereinstellungen
Sobald die obigen Dateien installiert sind, ist Ihr Samba4-Server bereit zur Verwendung
Serverrolle: Active Directory-Domänencontroller
Hostname: samba4
NetBIOS-Domäne: SUNIL
DNS-Domäne: sunil.cc
DOMAIN SID: S-1-5-21-1578983437-3114190590-2362936743
[root@samba4 etc]#
Stellen Sie sicher, dass die Ports in der Firewall geöffnet sind.
[root@samba4 etc]#firewall-cmd --add-port=53/tcp --permanent;firewall-cmd --add-port=53/udp --permanent;firewall-cmd --add-port=88/tcp --permanent;firewall-cmd --add-port=88/udp --permanent;
firewall-cmd --add-port=135/tcp --permanent;firewall-cmd --add-port=137-138/udp --permanent;firewall-cmd --add-port=139/tcp --permanent;
firewall-cmd --add-port=389/tcp --permanent;firewall-cmd --add-port=389/udp --permanent;firewall-cmd --add-port=445/tcp --permanent;
firewall-cmd --add-port=464/tcp --permanent;firewall-cmd --add-port=464/udp --permanent;firewall-cmd --add-port=636/tcp --permanent;
firewall-cmd --add-port=1024-3500/tcp --permanent;firewall-cmd --add-port=3268-3269/tcp --permanent
[root@samba4 ~]# firewall-cmd --reload
Das Paket stellt kein Init-Skript bereit, wir werden es jetzt hinzufügen.
[root@samba4 ~]# cat /etc/systemd/system/samba.service
[Unit]
Description= Samba 4 Active Directory
After=syslog.target
After=network.target
[Service]
Type=forking
PIDFile=/var/run/samba.pid
ExecStart=/usr/sbin/samba
[Install]
WantedBy=multi-user.target
[root@samba4 ~]#
[root@samba4 ~]# systemctl enable samba
Erstellter Symlink von /etc/systemd/system/multi-user.target.wants/samba.service zu /etc/systemd/system/samba.service.
[root@samba4 ~]# systemctl restart samba
Alle anderen Schritte sind ähnlich wie in meinem vorherigen Artikel um Windows- und Linux-Hosts zu konfigurieren, siehe dazu
Installation des Samba4-Domänencontrollers aus dem Quellcode
Erstellen der Samba-Freigabe mit Windows-ACL-Unterstützung
Wir müssen die erweiterten ACL für samba4 konfigurieren. Fügen Sie Folgendes in die smb.conf-Datei unter global hinzu.
[root@samba4 ~]# cat /etc/samba/smb.conf
# Globale Parameter
[global]
------------
-------------
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
------------
-------------
[root@samba4 ~]#
Jetzt starten Sie den Samba-Dienst neu.
[root@samba4 ~]# systemctl restart sambaNur Benutzer und Gruppen, denen das SeDiskOperatorPrivilege-Recht gewährt wurde, können Freigabeberechtigungen konfigurieren.
[root@samba4 ~]# net rpc rights grant "SUNIL\Domain Admins" SeDiskOperatorPrivilege -U "USER\administrator"
Geben Sie das Passwort von USER\administrator ein:
Rechte erfolgreich gewährt.
[root@samba4 ~]#
Bevor wir die Freigabe erstellen, müssen wir sicherstellen, dass der Samba4-Server sich selbst authentifiziert.
Wir können die übliche Methode nicht verwenden, da das vorhandene Paket von Wing mit den von RedHat bereitgestellten Paketen in Konflikt steht, wir können hier sssd nicht verwenden. Wir werden winbind verwenden, um dies zum Laufen zu bringen.
Bitte verwenden Sie die folgende Methode. Dies ist erforderlich, um die Samba-Freigabe mit bestimmten Berechtigungen zu erstellen.
Installieren Sie das folgende Paket.
[root@samba4 ~]#yum -y install authconfig-gtk*Führen Sie den Befehl aus.
[root@samba4 yum.repos.d]# authconfig-tui
Bitte wählen Sie winbind aus und folgen Sie den nächsten Schritten.




Sie werden das Passwort nicht eingeben können, drücken Sie einfach OK.
Kommentieren Sie dann die Zeilen in /etc/samba/smb.conf aus und starten Sie den Samba-Dienst neu.
Ihre Konfiguration sollte so aussehen:
[root@samba4 ~]# cat /etc/samba/smb.conf
# Globale Parameter
[global]
#--authconfig--start-line--
# Generiert von authconfig am 2017/05/26 17:23:04
# DIESE SEKTION NICHT BEARBEITEN (begrenzt durch --start-line--/--end-line--)
# Jede Änderung kann von authconfig in Zukunft gelöscht oder geändert werden
# workgroup = SUNIL
# password server = samba4.sunil.cc
# realm = SUNIL.CC
# security = ads
# idmap config * : range = 16777216-33554431
# template shell = /sbin/nologin
# kerberos method = secrets only
# winbind use default domain = false
# winbind offline logon = false
#--authconfig--end-line--
netbios name = SAMBA4
realm = SUNIL.CC
workgroup = SUNIL
dns forwarder = 4.2.2.1
server role = active directory domain controller
idmap_ldb:use rfc2307 = yes
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
[netlogon]
path = /var/lib/samba/sysvol/sunil.cc/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[root@samba4 ~]#
[root@samba4 ~]# systemctl restart samba
Überprüfen Sie, ob wir in der Lage sind, die Benutzer und Gruppen zu befüllen:
[root@samba4 ~]# wbinfo -u
SUNIL\administrator
SUNIL\sambauser
SUNIL\testuser
SUNIL\krbtgt
SUNIL\guest
[root@samba4 ~]# wbinfo -g
SUNIL\cert publishers
SUNIL\ras and ias servers
SUNIL\allowed rodc password replication group
SUNIL\denied rodc password replication group
SUNIL\dnsadmins
SUNIL\enterprise read-only domain controllers
SUNIL\domain admins
SUNIL\domain users
SUNIL\domain guests
SUNIL\domain computers
SUNIL\domain controllers
SUNIL\schema admins
SUNIL\enterprise admins
SUNIL\group policy creator owners
SUNIL\read-only domain controllers
SUNIL\dnsupdateproxy
[root@samba4 ~]#
Ändern Sie die Zeilen in nsswitch.conf:
[root@samba4 ~]# cat /etc/nsswitch.conf
----------
---------
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files dns wins
services: files winbind
netgroup: files winbind
---------
----------
Überprüfen Sie jetzt, ob wir in der Lage sind, den Benutzernamen mit dem id-Befehl zu erhalten:
[root@samba4 ~]# id testuser
uid=3000019(SUNIL\testuser) gid=100(users) groups=100(users),3000019(SUNIL\testuser),3000009(BUILTIN\users)
[root@samba4 ~]#
Erstellen einer Samba-Freigabe
Ich werde zwei Freigaben erstellen, eine, die nur von testuser zugänglich ist, und die andere Freigabe, die von allen Benutzern in der Domänengruppe “Domain Users” zugänglich ist.
Die Freigabe, die von testuser zugänglich ist, wird testshare genannt.
Die Freigabe, die von allen Benutzern zugänglich ist, wird commonshare genannt.
[root@samba4 ~]# mkdir /testshare
[root@samba4 ~]# mkdir /commonshare
[root@samba4 ~]# chmod 770 /testshare
[root@samba4 ~]# chmod 770 /commonshare
[root@samba4 ~]# chown -R root:testuser /testshare
[root@samba4 ~]# chown -R root:"Domain Users" /commonshare
Fügen Sie jetzt die Einträge in smb.conf hinzu
[root@samba4 ~]# cat /etc/samba/smb.conf
# Globale Parameter
[global]
netbios name = SAMBA4
realm = SUNIL.CC
workgroup = SUNIL
dns forwarder = 4.2.2.1
server role = active directory domain controller
idmap_ldb:use rfc2307 = yes
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
[netlogon]
path = /var/lib/samba/sysvol/sunil.cc/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[TestShare]
comment = Testfreigabe, die von testuser zugänglich ist
path = /testshare
valid users = SUNIL\testuser
writable = yes
read only = no
force create mode = 0660
create mask = 0770
directory mask = 0770
force directory mode = 0770
access based share enum = yes
hide unreadable = yes
[CommonShare]
comment = Zugänglich für alle Benutzer
path = /commonshare
valid users = "@SUNIL\Domain Users"
writable = yes
read only = no
force create mode = 0660
create mask = 0777
directory mask = 0777
force directory mode = 0770
access based share enum = yes
hide unreadable = yes
[root@samba4 ~]#
Starten Sie den Samba-Dienst neu.
[root@samba4 ~]# systemctl restart sambaGreifen Sie als Testbenutzer auf die Samba-Freigabe zu.

Hier sehen Sie, dass sowohl testshare als auch commonshare sichtbar sind.
Getestet das Erstellen von Dateien und Ordnern unter testshare.

[root@samba4 /]# cd /testshare/
[root@samba4 testshare]# ls -l
total 8
-rwxrwx---+ 1 SUNIL\testuser users 0 May 27 22:56 1.txt
drwxrwx---+ 2 SUNIL\testuser users 6 May 27 22:56 test
[root@samba4 testshare]#
Jetzt melde ich mich als ein anderer Benutzer an, nur commonshare ist sichtbar:

Erstellen von Dateien unter commonshare.
[root@samba4 commonshare]# ls -l
total 8
drwxrwxrwx+ 2 SUNIL\testuser users 6 May 27 23:02 test
drwxrwxrwx+ 2 SUNIL\sambauser users 6 May 27 23:07 test2
[root@samba4 commonshare]#
So erstellen wir Freigaben unter Samba 4.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.