Table des matières
Créer un NAS avec votre Raspberry Pi et Samba
Pré-requis
Première étape
Autres étapes
Création du serveur NAS avec Samba
- Éditez avec les droits d'administration le fichier /etc/samba/smb.conf
pi@framboise:~ $ sudo nano /etc/samba/smb.conf
pour le modifier comme ceci :
- Enfin, tout en bas du fichier, ajoutez des paramètres relatifs à l’accès à la partie publique du NAS :
[public] comment = Public Storage path = /home/shares/public valid users = @users force group = users create mask = 0660 directory mask = 0771 read only = no
Redémarrez samba :pi@framboise:~ $ sudo systemctl restart smbd
Ajoutez un utilisateur à samba, ici nous ajoutons l’utilisateur pi :pi@framboise:~ $ sudo smbpasswd -a pi New SMB password: Retype new SMB password: Added user pi.
Voir la configuration de /etc/samba/smb.conf : smb.conf : le fichier de configuration de Samba
Ce qui marche :
... [share] Comment = Shared Folder Path = /mnt/usb Browseable = yes Writeable = Yes only guest = no create mask = 0777 directory mask = 0777 Public = yes Guest ok = yes
penser à ouvrir ufw :
pi@framboise:~ $ sudo ufw allow samba Rule added Rule added (v6)
Ajouter un disque
- Branchez votre disque à votre Raspberry Pi
- Détectez le nom que le Raspberry lui a attribué :
pi@framboise:~ $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT <...> sdb 8:16 1 125G 0 disk └─sdb1 8:17 1 125G 0 part /media/pi/BCB9-8CFD <...>
Ici, la clé est sdb avec une partition sdb1.
- Formatez la partition en ext4 :
pi@framboise:~ $ sudo umount /dev/sdb1 pi@framboise:~ $ sudo mkfs.ext4 /dev/sdb1
Soyez patient : l'opération est longue…
- Créez un répertoire pour monter le disque pour qu’il soit accessible via le NAS, et donnez-lui les droits de lecture/écriture nécessaires :
pi@framboise:~ $ sudo mkdir /home/shares/public/donnees pi@framboise:~ $ sudo chown -R root:users /home/shares/public/donnees pi@framboise:~ $ sudo chmod -R ug=rwx,o=rx /home/shares/public/donnees
Peu importe le nom du dossier (donnees dans l’exemple) Le nom du dossier (disk1 dans l’exemple) importe peu, il vous permettra de le retrouver aisément sur le réseau.
- Montez la partition dans ce dossier :
pi@framboise:~ $ sudo mount /dev/sdb1 /home/shares/public/donnees/
- Monter les périphériques au démarrage du Raspberry Pi :éditez avec les droits d'administration le fichier /etc/fstab et pour chaque périphérique, rajoutez en bas du fichier une ligne :
/dev/sdb1 /home/shares/public/donnees auto noatime,nofail 0 0
Repérage des partitions
Avant de brancher le disque, lister les partitions du Raspberry Pi en lançant :
$ pi@framboise:~ $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 232,9G 0 disk ...
Brancher le disque dur sur une prise USB du Raspberry Pi. Relancer :
$ pi@framboise:~ $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 1 125G 0 disk └─sdb1 8:17 1 125G 0 part sda 8:0 0 232,9G 0 disk ...
Les lignes apparues correspondent aux partitions du disque (s'il y a plusieurs lignes, c'est que le disque a plusieurs partitions)
Dans cet exemple, le Raspberry Pi est installé sur /dev/sda (avec un pidrive).
le disque dur que nous venons de connecter est /dev/sdb et a une partition /dev/sdb1 qui va nous servir.
Repérez son UUID :
$ pi@framboise:~ $ sudo blkid /dev/sdb* /dev/sdb: PTUUID="876fbad3" PTTYPE="dos" /dev/sdb1: PARTUUID="876fbad3-01"
Partitionnement
Création de l'arborescence de montage
Vous pouvez utiliser par exemple des sous-répertoires de /media
Les partitions de la clé à installer sont repérées, par exemple :
- la partition /dev/sdb1, en vfat, de label data1, sera montée sur le répertoire /media/data1
- etc.
Le nouveau disque est /dev/sdb. Simplifiez l'affichage avec :
pi@framboise:~ $ sudo blkid /dev/sdb* /dev/sdb: PTUUID="876fbad3" PTTYPE="dos" /dev/sdb1: UUID="7FE1-97D6" TYPE="vfat" PARTUUID="876fbad3-01"
Repérez les partitions montées par :
pi@framboise:~ $ sudo blkid /dev/sdb* /dev/sdb: PTUUID="876fbad3" PTTYPE="dos" /dev/sdb1: UUID="7FE1-97D6" TYPE="vfat" PARTUUID="876fbad3-01"
Si elles sont montées, démontez la ou les partitions repérées et créez les répertoires de montage, par exemple pour deux partitions :
pi@framboise:~ $ sudo umount /dev/sdb1 pi@framboise:~ $ sudo mkdir -p /media/{disque1,disque2}
Montage automatique au démarrage (fichier fstab)
Éditez avec les droits d'administration le fichier /etc/fstab pour ajoutez une ligne pour chaque partition du disque :
- cas d'une partition ntfs :
- /etc/fstab
# disque1 (/dev/sdb1) UUID=xxxxxxxxxxx UUID=xxxxxxxxxxx /media/disque1 ntfs-3g exec,permissions,auto 0 0
- UUID
- valeur de l'UUID vue avec blkid, sans les guillemets
- point de montage
- /media/disque1 (répertoire créé plus haut)
- ntfs-3g
- partition en ntfs
- permissions
- permet de gérer les droits comme pour une partition linux (chown, chmod)
- Cas d'une partition ext4
- /etc/fstab
# disque1 (/dev/sdb1) UUID=xxxxxxxxxxx UUID=xxxxxxxxxxx /media/disque1 ext4 defaults 0 0
- UUID
- valeur de l'UUID vue avec blkid, sans les guillemets
- point de montage
- /media/disque1 (répertoire créé plus haut)
- ext4
- partition en ext4
- defaults
- valeurs par défaut
Montez tout ce qui est décrit dans fstab en tapant :
pi@framboise:~ $ sudo mount -a
Pour rendre propriétaires l'utilisateur pi et le groupe pi, tapez :
pi@framboise:~ $ sudo chown -R pi:pi /media/disque1/
Pour vérifier (ici, la partition /media/disque1) :
pi@framboise:~ $ ls -l /media/disque1 ... drwxr-xr-x 2 pi pi 4096 janv. 17 2018 xxxxx
Le propriétaire et le groupe sont pi et les droits sont rwx. Les permissions sont donc réglables.
Désormais, le Raspberry Pi monte son disque tout seul au démarrage.
Ouvrir l'accès à tout le réseau
Connectez-vous au Raspberry Pi, via ssh ou vnc.
- Faites une copie du fichier de configuration de samba :
pi@framboise:~ $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.dist
section sous-section remplacer par [global] workgroup = WORKGROUP
le groupe de travail voulu [global] ##### Authentication ##### dé-commenter # security = user
security = user
[homes] read only = yes
read only = no
- Redémarrez samba :
pi@framboise:~ $ sudo /etc/init.d/samba restart
Définition des utilisateurs pour samba
L'utilisateur pi est déjà défini par défaut. rendez-le utilisateur samba :
pi@framboise:~ $ sudo smbpasswd -a pi
et donnez deux fois le mot de passe samba de pi comme demandé.
Configurer une zone de stockage publique sur le Raspberry Pi
- Créez un répertoire pour stocker les fichiers publics :
pi@framboise:~ $ sudo mkdir /media/<Disque_NAS>
et donnez-lui les droits voulus :
- propriétaire : pi, groupe pi
pi@framboise:~ $ sudo chown -R pi:pi /media/<Disque_NAS>
- droits :
pi@framboise:~ $ sudo chmod -R ug=rwx,o=rx /media/<Disque_NAS>
éditez avec les droits d'administration le fichier /etc/samba/smb.conf et ajoutez les lignes suivantes à la fin :- /etc/samba/smb.conf
[NAS_disque] comment = NAS_disque path = /media/<Disque_NAS> valid users = @pi force group = pi create mask = 0660 directory mask = 0771 read only = no
→ Ce disque sera vu cumme “nas_disque” (en minuscules)
Redémarrez samba :pi@framboise:~ $ sudo systemctl restart smbd.service
Accès depuis les PCs du réseau
PC sous Windows
- Un clic droit sur le poste de travail, ajouter un lecteur réseau.
- Renseignez :
- la lettre à utiliser pour ce disque
- le répertoire, de la forme : \\framboise.local\Disque_NAS ou \\192.168.0.31\nas_disque
- pour un utilisateur enregistré : son nom
- pour la zone publique, son répertoire
- cochez “reconnecter au démarrage”
Il est demandé un nom et un mot de passe :- Fournir ceux d'un utilisateur enregistré sur samba du Raspberry Pi.
- Pour la zone publique, n'importe quel nom convient.
PC sous Linux
Installez le paquet cifs-utils ou
...@...:~$ sudo apt install cifs-utils
- Monter le NAS en ligne de commande :
...@...:~$ sudo mount -t cifs -o username=pi,password=PASSWD //framboise.local/nas_disque /media/nas_disque
en complétant le mot de passe. Le montage se fait et le disque apparaît dans Nautilus.
- Monter le NAS graphiquement :
- Ouvrez nautilus, tapez Ctrl+L et entrer :
smb://<serveur>/<partage>
- <serveur> = adresse IP ou nom d'hôte du Raspberry Pi
- <partage> = répertoire auquel se connecter.
Renseignez :- l'utilisateur (pi)
- le mot de passe
- cocher retenir toujours (facultatif)
Vous pouvez aussi taper Ctrl+L puis :smb://<serveur>
et naviguer dans les partages.
Monter le NAS en permanence :- Créez un répertoire de montage, par exemple :
...@...:~$ sudo mkdir /media/disque_NAS
- Éditez avec les droits d'administration le fichier /etc/fstab pour ajouter la ligne :
- /etc/fstab
//framboise.local/nas_disque /media/disque_NAS cifs credentials=/etc/framboise.credentials 0 0
- Créez avec les droits d'administration le fichier /etc/framboise.credentials contenant le nom d'utilisateur et son mot de passe :
- /etc/framboise.credentials
username=pi password=<password>
- Protégez les fichiers credentials :
...@...:~$ sudo chmod 600 /etc/*.credentials
- D'autres options (séparées par des virgules) peuvent être ajoutées au fichier /etc/fstab :
- user : permet le montage par les utilisateurs normaux
- noauto : empêche le montage automatique au démarrage du système
On peut aussi monter les entrées de /etc/fstab à la main en exécutant une de ces trois commandes :...@...:~$ sudo mount //192.168.0.31/nas_disque ...@...:~$ sudo mount //framboise.local/nas_disque ...@...:~$ sudo mount /disk/disque_NAS
Pour une freebox, on utilise la même méthode avec un fichier /etc/freebox.credentials sans user ni mdp :
- /etc/freebox.credentials
username= password=
Conclusion
Problèmes connus
Voir aussi