Samba Installation · 7 min read · Dec 14, 2025
Samba 4 avec Active Directory sur installation basée sur rpm de CentOS 7 avec support de partage
Dans le dernier tutoriel, je vous ai montré comment configurer Samba sur CentOS 7 en compilant Samba à partir de la source, car le paquet fourni par RedHat ne prend pas en charge Active Directory. J’ai remarqué qu’il existe un dépôt appelé Wing qui fournit le rpm samba4 avec support AD. Dans ce tutoriel, j’utiliserai ce dépôt pour l’installation de Samba. Je vais également montrer comment créer un partage samba.
Dans ce tutoriel, j’utiliserai un serveur CentOS 7 avec une installation minimale comme base avec SELinux activé.
Préparer le serveur CentOS 7
Vérifiez l’état de SELinux.
[root@samba4 ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
[root@samba4 ~]#
Faites une entrée dans le fichier hôte avec l’adresse IP du serveur suivie du nom d’hôte complet (fqdn) et ensuite la partie locale du nom d’hôte.
[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 ~]#
Installez le dépôt Epel CentOS.
[root@samba4 ~]# yum install epel-release -yInstallez les paquets de base.
[root@samba4 ~]# yum install vim wget authconfig krb5-workstation -y
Maintenant, installez le dépôt wing.
[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
Loaded plugins: fastestmirror
Cleaning repos: base extras updates wing wing-source
Cleaning up everything
Cleaning up list of fastest mirrors
[root@samba4 yum.repos.d]#
Installer Samba 4 sur CentOS 7
Installation des paquets Samba4 à partir du dépôt wing avec 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
Supprimez ces fichiers.
[root@samba4 ~]# rm -rf /etc/krb5.conf
[root@samba4 ~]# rm -rf /etc/samba/smb.conf
Configuration de Samba 4
Maintenant, nous allons procéder à la provision du domaine.
[root@samba4 ~]# samba-tool domain provision --use-rfc2307 --interactive
Realm [SUNIL.CC]:
Domain [SUNIL]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [4.2.2.1]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=sunil,DC=cc
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=sunil,DC=cc
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4
NetBIOS Domain: SUNIL
DNS Domain: sunil.cc
DOMAIN SID: S-1-5-21-1578983437-3114190590-2362936743
[root@samba4 etc]#
Assurez-vous que les ports sont ouverts dans le pare-feu.
[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
Le paquet ne fournit pas le script d’initialisation, nous allons l’ajouter maintenant.
[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
Created symlink from /etc/systemd/system/multi-user.target.wants/samba.service to /etc/systemd/system/samba.service.
[root@samba4 ~]# systemctl restart samba
Tous les autres étapes sont similaires à mon précédent article
pour configurer les hôtes Windows et Linux, veuillez vous y référer
Installation du contrôleur de domaine Samba4 à partir de la source
Création du partage Samba avec support ACL Windows
Nous devons configurer l’ACL étendue pour samba4. Ajoutez ce qui suit dans le fichier smb.conf sous global.
[root@samba4 ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
------------
-------------
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
------------
-------------
[root@samba4 ~]#
Maintenant, redémarrez le service Samba.
[root@samba4 ~]# systemctl restart sambaSeuls les utilisateurs et groupes ayant le privilège SeDiskOperatorPrivilege accordé peuvent configurer les autorisations de partage.
[root@samba4 ~]# net rpc rights grant "SUNIL\Domain Admins" SeDiskOperatorPrivilege -U "USER\administrator"
Enter USER\administrator's password:
Successfully granted rights.
[root@samba4 ~]#
Avant de créer le partage, nous devons nous assurer que le serveur samba4 s’authentifie avec lui-même.
Nous ne pouvons pas utiliser la méthode habituelle car elle ne fonctionne pas, car le paquet existant de wing entrera en conflit avec les paquets fournis par RedHat, nous ne pouvons pas utiliser sssd ici. Nous allons utiliser winbind pour faire fonctionner cela.
Veuillez utiliser la méthode ci-dessous. Cela est nécessaire pour créer le partage samba avec des autorisations spécifiques.
Installez le paquet ci-dessous.
[root@samba4 ~]#yum -y install authconfig-gtk*Exécutez la commande.
[root@samba4 yum.repos.d]# authconfig-tui
Veuillez sélectionner winbind, suivez les étapes suivantes.




Vous ne pourrez pas entrer le mot de passe, appuyez simplement sur ok.
Ensuite, commentez les lignes dans /etc/samba/smb.conf et redémarrez le service samba.
Votre configuration devrait ressembler à ceci :
[root@samba4 ~]# cat /etc/samba/smb.conf
# Global parameters
[global]
#--authconfig--start-line--
# Generated by authconfig on 2017/05/26 17:23:04
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future
# 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
Vérifiez si nous pouvons peupler les utilisateurs et groupes :
[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 ~]#
Modifiez les lignes dans 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
---------
----------
Maintenant, vérifiez si nous pouvons obtenir le nom d’utilisateur en utilisant la commande id :
[root@samba4 ~]# id testuser
uid=3000019(SUNIL\testuser) gid=100(users) groups=100(users),3000019(SUNIL\testuser),3000009(BUILTIN\users)
[root@samba4 ~]#
Création d’un partage Samba
Je vais créer deux partages, l’un accessible uniquement par testuser et l’autre partage accessible par tous les utilisateurs du groupe des utilisateurs de domaine.
Le partage accessible par testuser sera appelé testshare.
Le partage accessible par tous les utilisateurs sera appelé commonshare.
[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
Ajoutez maintenant les entrées dans smb.conf
[root@samba4 ~]# cat /etc/samba/smb.conf
# Global parameters
[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 = Partage de test accessible par testuser
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 = Accessible par tous les utilisateurs
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 ~]#
Redémarrez le service samba.
[root@samba4 ~]# systemctl restart sambaAccédez au partage samba en tant qu’utilisateur test.

Ici, vous verrez que testshare et commonshare sont visibles.
Testé la création de fichiers et de dossiers sous 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]#
Maintenant, je me connecte en tant qu’utilisateur différent, seul commonshare est visible :

Création de fichiers sous 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]#
C’est ainsi que nous créons des partages sous Samba 4.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.