96 lines
5.1 KiB
Markdown
96 lines
5.1 KiB
Markdown
# - 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.
|
||
|
||

|
||
|
||
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 automatiquement.
|
||
|
||
- , compatible avec Windows
|
||
- , partage Linux compatible partiellement avec Windows |