{{tag>tutoriel}} ====== 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.confpour 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 : [[logiciel:internet:samba:smb.conf:start]] 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/sdb1Soyez 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/donneesPeu 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 :# 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# 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 piet 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/et donnez-lui les droits voulus : * propriétaire : pi, groupe pipi@framboise:~ $ sudo chown -R pi:pi /media/ * droits :pi@framboise:~ $ sudo chmod -R ug=rwx,o=rx /media/ - éditez avec les droits d'administration le fichier **/etc/samba/smb.conf** et ajoutez les lignes suivantes à la fin : [NAS_disque] comment = NAS_disque path = /media/ 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 **[[apt>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_disqueen complétant le mot de passe. Le montage se fait et le disque apparaît dans Nautilus. - **Monter le NAS graphiquement** : * Ouvrez **nautilus**, tapez C-L et entrer :smb:/// * = adresse IP ou nom d'hôte du Raspberry Pi * = répertoire auquel se connecter. * Renseignez :{{ tutoriel:disque:sd:raspi:nas:nas_raspi-01.png?400 |}} * l'utilisateur (pi) * le mot de passe * cocher **retenir toujours** (facultatif) * Vous pouvez aussi taper C-L puis :smb://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 ://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 : username=pi 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 : username= password= ===== Conclusion ===== ===== Problèmes connus ===== ===== Voir aussi ===== * **(fr)** [[https://raspberry-pi.fr/raspberry-pi-nas-samba/]] * **(fr)** [[https://www.inpact-hardware.com/article/1013/transformez-votre-raspberry-pi-4-en-nas]] * **(en)** [[http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html]] * **(fr)** [[http://emery.claude.free.fr/nas-samba.html|Créer un NAS avec Samba sur Raspberry]] * **(fr)** [[http://emery.claude.free.fr/nas-raid1-raspberry.html|NAS Raid 1 sur Raspberry]] * **(fr)** [[http://xaviermichel.github.io/tutoriel/2013/06/17/mise-en-place-d'un-NAS-avec-raid-sur-mon-raspberry-pi|Mise En Place D'un Nas Avec Raid Sur Mon Raspberry Pi ]] * **(fr)** [[http://blog.idleman.fr/billet-invite-creer-un-nas-avec-le-raspberry-pi/|Créer un nas avec le Raspberry Pi]] ---- //Basé sur << [[http://elinux.org/R-Pi_NAS|R-Pi NAS]] >> par elinux.org.//