Ce didacticiel montre comment créer à l'aide de samba un serveur NAS (Network Attached Storage = serveur de stockage réseau) sur un Raspberry Pi pour y enregistrer des données en les rendant disponibles sur le réseau local. Ce NAS peut être installé sur :
Ce stockage ne contiendra pas le système et sera juste destiné à recevoir des données.
Faites une sauvegarde : si le disque dur connecté au Raspberry Pi tombe en panne, les fichiers deviendront inaccessibles.
Dans ce didacticiel, nous supposerons un volume RAID monté en /media/raid0
SAMBA est un système de partage de fichiers Windows qui fonctionne sous Linux.
pi@framboise:~ $ sudo apt update pi@framboise:~ $ sudo apt upgrade pi@framboise4:~ $ sudo apt install samba exfat-fuse exfat-utils dosfstools ntfsprogs
Si des questions vous sont posées, sélectionnez la réponse par défaut.
pi@framboise:~ $ sudo smbpasswd -a pi New SMB password: Retype new SMB password:
pi@framboise:~ $ sudo mkdir -p /media/raid0/ pi@framboise:~ $ sudo mount /dev/md0 /media/raid0 pi@framboise:~ $ lsblk -f /dev/md0 NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT md0 ext4 fe1b5cfe-7749-4834-904f-38c1032be9fe 54,4G 0% /media/raid0
UUID=fe1b5cfe-7749-4834-904f-38c1032be9fe /media/raid0 auto noatime 0 0
pi@framboise:~ $ sudo mkdir -p /media/raid0/nas/{pi-public,pi-ro,pi-perso} pi@framboise:~ $ tree /media/raid0/nas/ /media/raid0/nas/ ├── pi-perso ├── pi-public └── pi-ro
pi@framboise:~ $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.dist
... ####### Authentication ####### security = user
#Configuration générale
[global]
# groupe de travail
workgroup = WORKGROUP
# identification de la machine (%h = hostname)
server string = serveur %h
# nom du NAS sur le réseau (par défaut, le hostname)
netbios name = MONNAS
# ne pas utiliser nslookups pour la résolution des noms NetBIOS.
dns proxy = no
# un fichier journal par machine
log file = /var/log/samba/log.%m
# taille maximum des fichiers journaux en Ko
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
# Authentication
# gestion de la sécurité par utilisateur
security = user
# Active le cryptage du mot de passe
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
# autorise une synchronisation des mots de passe SMB avec ceux de la machine Unix
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
map to guest = bad user
usershare allow guests = yes
...
[pi-public]
comment = Partage public
path = /media/raid0/nas/pi-public
read only = no
locking = no
guest ok = yes
force user = pi
create mask = 0777
directory mask = 0777
...
[pi-perso]
comment = Stockage privé de toto
path = /media/raid0/nas/pi-perso
guest ok = no
username = toto
only user = yes
browseable = no
read only = no
writable = yes
create mode = 0600
directory mask = 0700
...
[pi-ro]
comment = Lecture seule
path = /media/raid0/nas/pi-ro
read only = yes
locking = no
guest ok = yes
force user = pi
pi@framboise:~ $ testparm rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) WARNING: The "syslog" option is deprecated Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) WARNING: The "syslog" option is deprecated Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Processing section "[Public]" Processing section "[Films]" Processing section "[Perso]" Unknown parameter encountered: "username" Ignoring unknown parameter "username" Unknown parameter encountered: "only user" Ignoring unknown parameter "only user" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
S'il s'affiche “Loaded services file OK.”, c'est bon.
pi@framboise:~ $ sudo systemctl restart smbd.service