Etape 8 – Le partage de fichier : SAMBA (Compatible Time Machine)
- Introduction
- Etape 1 (V1) – Installation – Secure Boot EFI & ZFS Mirror on Debian Bookworm avec Proxmox (sans cryptage / serveur local)
- Prochainement: Etape 1 (V2) – Installation – Disque crypté LUKS RAID & Debian Bullseye avec Proxmox
- Etape 1 (V1) – Installation – ZFS Native Encryption & Debian Bullseye avec Proxmox
- Etape 2 – Le firewall IPv4 : Shorewall
- Etape 3 – Le firewall IPv6 : Shorewall6
- Etape 4 – Le serveur DHCP : isc-dhcp-server
- Etape 5 – Le serveur DNS : Bind9
- Etape 6 – La base de données : MariaDB
- Etape 7 – Le serveur WEB : Nginx & SSL (Let’s Encrypt)
- Etape 8 – Le partage de fichier : SAMBA (Compatible Time Machine)
- Etape 9 – Le serveur de MAIL : Postfix / Dovecot / Rspamd
1. Introduction
Samba est incontournable si vous souhaitez que votre serveur partage des fichiers sur le réseau (tant avec machines sous windows que sous mac).
2. Installation
apt install --yes samba
Et voilà c’est tout 🙂 (vive debian !)
3. Configuration
3.1 Pré-requis
3.1.1 Création d’un groupe de partageur
Je vous conseille de créer un groupe d’utilisateur pour vous faciliter la configuration des utilisateurs :
addgroup sambagrp --gid 5000
Et on ajoute les utilisateurs que l’on souhaite dedans :
adduser lulu sambagrp
3.1.2 – Répertoire /serveur/samba
On créé le répertoire où l’on va stocker les fichiers en partage :
mkdir /serveur/samba
chown root:root /serveur/samba
zfs create rpool/serveur/samba
zfs set quota=500M rpool/serveur/samba
On créé les répertoires pour chacun des partages (pour l’exemple) :
mkdir /serveur/samba/perso /serveur/samba/partage /serveur/samba/matimemachine
chown lulu:sambagrp /serveur/samba/*
chmod 750 /serveur/samba/*
chmod u+s /serveur/samba/*
chmod g+s /serveur/samba/*
chown lulu:sambagrp -R * && find . -type f -print0 | xargs -0 chmod -t,a-rwxs,u+rw,g+rw && find . -type d -print0 | xargs -0 chmod -t,a-rwxs,u+rwxs,g+rwxs
3.2 Fichier /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = MonServeur
obey pam restrictions = yes
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
log file = /var/log/samba/log.%m
max log size = 1000
panic action = /usr/share/samba/panic-action %d
interfaces = 192.168.0.0/24 eno2
bind interfaces only = yes
dns proxy = no
server role = standalone server
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
wins support = yes
domain master = Yes
os level = 65
# Time Machine
vfs objects = catia fruit streams_xattr
fruit:model = MacPro
fruit:aapl = yes
fruit:resource = xattr
fruit:encoding = native
fruit:metadata = stream
socket options = TCP_NODELAY IPTOS_LOWDELAY
[Perso]
comment = Mes fichiers
path = /serveur/samba/perso
valid users = lulu, soso
read list = lulu, soso
write list = lulu
force group = sambagrp
read only = No
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
[Partage]
comment = Du partage
path = /serveur/samba/partage
valid users = lulu, soso
write list = lulu, soso
force group = sambagrp
read only = No
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
[MaTimeMachine]
comment = Ma Time Machine
path = /serveur/samba/matimemachine
valid users = lulu
write list = lulu
force group = lulu
browsable = yes
writable = yes
create mode = 0600
directory mode = 0700
fruit:time machine = yes
durable handles = yes
kernel oplocks = no
kernel share modes = no
posix locking = no
4. Commandes pratiques
4.1 Ajout des utilisateurs
smbpasswd -a lulu
4.2 Listing des utilisateurs
pdbedit -L -v
4.3 Status
smbstatus
4.4 Redémarrer le serveur
systemctl restart smbd
systemctl restart nmbd
5. Avahi
Avahi est un logiciel libre qui facilite la découverte automatique des services et des hôtes sur un réseau local sans nécessiter de configuration manuelle. Il permet aux appareils connectés de s’identifier et de détecter les services disponibles, tels que les imprimantes, les partages de fichiers ou les sessions de messagerie, simplifiant ainsi l’interaction entre les dispositifs sur le réseau (Multicast / Zeroconf). C’est dans mon installation essentiel pour que le partage TimeMachine soit reconnu.
5.1 Installation des paquets
Il faut donc l’installer :
apt update
apt install avahi-daemon avahi-utils
5.2 Fichier /etc/avahi/avahi-daemon.conf
[server]
host-name= MonServeur
domain-name=local
use-ipv4=yes
use-ipv6=no
allow-interfaces=eth0
disallow-other-stacks=no
ratelimit-interval-usec=1000000
ratelimit-burst=1000
[wide-area]
enable-wide-area=yes
[publish]
publish-addresses=no
publish-hinfo=no
publish-workstation=no
[reflector]
enable-reflector=no
[rlimits]
5.2 Fichier /etc/avahi/hosts
1.2.3.4 Monserveur.local
Remplacer 1.2.3.4 par l’adresse IP du serveur
6. Si erreur du type « samba-ad-dc.service: Skipped due to ‘exec-condition’. »
Pour une raison étrange, Debian s’attends à ce que Samba soit utilisé en mode contrôleur de domaine.
Il faut donc désactiver ad-dc et réactiver nos bons vieux smbd et nmbd
systemctl disable --now samba-ad-dc
systemctl enable --now smbd nmbd
systemctl status smbd nmbd