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