====== - Partage de fichiers ====== L'objectif de ces notes est de mettre en œuvre un partage de fichier avec SAMBA et NFS. ===== - Samba ===== Le logiciel **SAMBA** est utilisé pour le partage de fichiers et d’imprimantes à l’aide des protocoles **SMB** et **CIFS**. Ces protocoles étant ceux utilisés pour les systèmes d’exploitation Microsoft, l’installation de **Samba** sur une machine équipée de Linux permet : * d’intégrer celle-ci dans le "réseau Microsoft" de l’entreprise * de prendre la place d’un serveur Microsoft Windows On configure le service **Samba** à l’aide du fichier ''/etc/samba/smb.conf'' qui est composé de deux parties : * Une partie globale, qui permet de configurer le fonctionnement du service. * Une partie partages, où sont listés les partages de répertoires et d’imprimantes et leurs paramètres. La suite des manipulations serveur ont été testées avec **Raspbian 10** sur **Raspberry Pi 2** le **21 mars 2020**. ==== - Installer Samba sur le serveur ==== Sur **Debian** et **Rasbpian**, il faut utiliser **apt** : $ sudo apt update; sudo apt upgrade; sudo apt install samba Si votre ordinateur obtient ses paramètres IP à partir d'un serveur DHCP du réseau, ce serveur peut aussi fournir des informations sur les serveurs WINS (serveurs de noms NetBIOS) présents sur le réseau. Une modification du fichier ''smb.conf'' est nécessaire afin que les réglages WINS fournis par le serveur DHCP soient lus dans ''/var/lib/samba/dhcp.conf''. Le paquet ''dhcp-client'' doit être installé pour utiliser cette fonctionnalité. **Samba** utilise la configuration présente dans le fichier ''/etc/samba/smb.conf''. A chaque modification il sera nécessaire de redémarrer le service Samba pour que les modifications soient prises en compte : $ sudo systemctl restart smbd ==== - Créer un accès Samba anonyme ==== Toutes les connexions non identifiées se verront attribuer une ressource partagée. Cela permet d'échanger des fichiers sans authentification, dans un espace isolé. Voici la configuration nécessaire dans le fichier ''/etc/samba/smb.conf'' du **serveur Samba** : [global] map to guest = Bad User log file = /var/log/samba/%m log level = 1 [guest] # This share allows anonymous (guest) access # without authentication! path = /media/disk_23/anonymous read only = no guest ok = yes guest only = yes Côté **client Windows**, le partage sera accessible sans authentification. {{informatique:cfp:installer_un_serveur_de_partage_de_fichiers:samba_nas_accuel_guest.png|}} Les fichiers et dossiers créés le seront avec l'utilisateur ''nobody'' et le groupe ''nogroup''. Il faudra veiller à ce que le dossier ''/media/disk_23/anonymous'' soit en lecture/écriture pour tout le monde. $ sudo chmod -R 2777 /media/disk_23/anonymous ===== - Partage NFS sous Linux ===== **NFS** (Network File System), littéralement système de fichiers en réseau, est un protocole qui permet de partager des fichiers ou des dossiers entre système Unix/Linux depuis 1980. Il permet de monter dans votre système de fichier local des fichiers d'autres ordinateurs et interagir comme si ils étaient montés localement. Donc vous le comprendrez, NFS permet d'accéder de manière local à des fichiers distants. NFS est une architecture standard utilisé par des clients et serveur Unix. Avec NFS il n'est pas nécessaire d'avoir exactement le même système d'exploitation. Et grâce à NFS, nous pouvons réaliser une solution de stockage centralisé. **NFS** est composé de deux parties : * Serveur NFS : désigne le système qui possède physiquement les ressources (fichiers, répertoires) et les partages sur le réseau avec d’autres systèmes. * Client NFS : désigne un système qui monte les ressources partagées sur le réseau. Une fois montées, les ressources apparaissent comme si elles étaient locales. Le package serveur NFS inclus trois grandes parties inclus dans les package **portmap** et **nfs-utils**. * **portmap** est un mappeur appelé par les autres machines. * **NFS** est le logiciel qui permet de transférer le fichier ou les commandes vers le fichier distant, vers le système de fichier distant, et inversement. * **RPC.mountd** et le service qui permet de monter et démonter le système de fichier. Au niveau configuration nous retenons 3 fichier de configuration. * **/etc/exports** correspond au fichier de configuration principal du système NFS. Il contient la liste des ressources partagées, une ligne par ressource. * **/etc/fstab** permet de monter les dossiers NFS et de les remonter de manière automatique à chaque **boot**. * **etc/sysconfig/nfs** et le fichier de configuration du système **NFS** pour contrôler les ports **RPC** et les autres services en écoute. Quelques commandes : * La liste des ressources partagées peut être obtenue à l’aide de la commande ''showmount''. Aucune configuration particulière n’est nécessaire pour les clients. Les ressources partagées peuvent être listées et montées/démontées manuellement ou [[informatique:linux:cfp:partitions-disques-toujours-disponibles-avec-linux|automatiquement]]. {{page>informatique:linux:nfs-network-file-system}} * [[.:samba]], compatible avec Windows * [[..:..:linux:nfs-network-file-system]], partage Linux compatible partiellement avec Windows