Rhcsa samba
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Configuration détaillée d'un serveur Samba |
| Fichier | /etc/samba/smb.conf
|
| Voir aussi | Samba · Options samba · Samba rhel7 |
Mise en œuvre pas à pas d'un serveur Samba : mode de sécurité, base de comptes, journaux, partages spéciaux (homes, imprimantes, netlogon, profils), rappel SELinux. Complète le glossaire de directives disponible sur Options samba.
Base
vi /etc/samba/smb.conf
workgroup = MYGROUP
server string = Samba Server Version %v
; netbios name = MYSERVER # limité à 15 caractères
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
Journalisation
# un fichier de log distinct par machine cliente
log file = /var/log/samba/%m.log
# rotation après 50 Ko par fichier
max log size = 50
Mode de sécurité
security = {user|domain|ads|server|share}
| Valeur | Signification |
|---|---|
user |
Base de comptes locale au serveur Samba |
domain |
Authentification via un contrôleur de domaine Active Directory (standard AD) |
ads |
Authentification via un domaine Active Directory en mode natif (Kerberos) |
server |
Authentification déléguée à un serveur tiers qui n'est pas un AD |
share |
Mode peer-to-peer, aucune authentification (workgroup) |
Base de comptes
Gestion locale (/etc/samba) :
passdb backend = smbpasswd # fichier plat historique
passdb backend = tdbsam # Trivial Database Security Accounts Manager (par défaut)
Gestion via un annuaire LDAP :
passdb backend = ldapsam
Selon le mode de sécurité choisi :
; password server = <nom-du-serveur-NT> # pour security = server ou security = domain
; realm = MON_REALM # pour security = ads
Options de contrôleur de domaine :
; domain master = yes
; domain logins = yes
Scripts de connexion (clients Windows)
; logon script = %m.bat # script selon le nom de la machine
; logon script = %U.bat # script selon l'utilisateur Unix
; logon path = \\%L\Profiles\%U
Samba peut aussi déléguer la gestion des comptes/groupes/machines à des scripts système (auto-explicatifs) :
; add user script = /usr/sbin/useradd %u -n -g users
; add group script = /usr/sbin/groupadd %g
; add machine script = /usr/sbin/adduser -n -c "Workstation (%u)" -M -d /nohome -s /bin/false %u
; delete user script = /usr/sbin/userdel %u
; delete user from group script = /usr/sbin/userdel %u %g
; delete group script = /usr/sbin/groupdel %g
Contrôle du navigateur réseau (browsing)
; local master = no
; os level = 33
; preferred master = yes
Résolution de noms
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
; dns proxy = yes
Impression
load printers = yes
cups options = raw
printcap name = /etc/printcap # imprimantes définies dans le fichier de configuration
printcap name = lpstat # imprimante réseau
Attributs de système de fichiers
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes
Répertoires personnels partagés
[homes]
comment = Home Directories
browseable = no
writable = yes
Partage d'imprimantes
# avec un système d'impression BSD, inutile de définir chaque imprimante individuellement
[printers]
comment = All Printers
path = /usr/spool/samba
browseable = no
guest ok = no # passer à "yes" pour autoriser le compte invité à imprimer
writable = no
printable = yes
Netlogon (domain logons)
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
Profils itinérants
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes
Répertoires de groupe
# répertoire public en lecture seule, sauf pour le groupe "staff"
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff
; create mask = 0770
; directory mask = 2770
Rappel SELinux
chcon -R -t samba_share_t /home/samba
semanage fcontext -a -t samba_share_t /home/samba
Détail des contextes et booléens SELinux liés à Samba : voir Selinux samba.
Rejoindre un domaine
net rpc join -U root # un seul contrôleur de domaine présent
net rpc join -S DC -U root # plusieurs domaines
Base d'utilisateurs
username map = /etc/samba/smbusers
⚠️ Un utilisateur Samba ne peut être créé que depuis un compte Linux déjà existant :
useradd winuser1 -s /sbin/nologin
smbpasswd -a winuser1
Commande smbpasswd
| Option | Effet |
|---|---|
-a utilisateur |
Ajoute l'utilisateur à la base |
-d utilisateur |
Désactive l'utilisateur (coupe l'authentification réseau Microsoft) |
-e utilisateur |
Réactive l'utilisateur (inverse de -d)
|
-r machine |
Change le mot de passe sur une machine distante (Windows ou Samba), en général avec -U
|
-U utilisateur |
Utilisateur ciblé sur la machine distante, avec -r
|
-x utilisateur |
Supprime l'utilisateur de la base |
Emplacement des fichiers de comptes
passdb backend = smbpasswd→/etc/samba/smbpasswdpassdb backend = tdbsam→/var/lib/samba/private
Lister les utilisateurs courants :
pdbedit -L
Exemple : partage public
vi /etc/samba/smb.conf
[PublicShare]
comment = Shared Public Directory
path = /home/PublicShare
writeable = yes
browseable = yes
guest ok = yes
testparm # valide la syntaxe
smbclient -L sambaserver -U utilisateur # liste les partages exposés
mount "//sambaserver/utilisateur" /share -o username=root
Voir aussi
- Samba — présentation générale, installation, intégration AD
- Options samba — glossaire des directives de
smb.conf - Samba rhel7 — spécificités RHEL7 (systemd, firewalld, montage multiuser)
- Selinux samba — contextes, ports et booléens SELinux