Partage de Fichiers

De Travail-Ivan 2

Partage de Fichiers

Objectifs

  • Mettre en place des partages de fichiers suivant les différents besoins et infrastructures

Protocoles

  • NFS
  • Samba

NFS (Network File System)

Présentation

Le NFS est un protocole standard permettant de rendre accessible via le réseau des points d'arborescence donnés à des clients distants. Il est principalement utilisé pour le partage de données entre systèmes UNIX et GNU/Linux, bien qu'il soit également pris en charge sur d'autres environnements (Windows/Apple).

Caractéristiques de la version 4

  • Dernière version majeure du protocole
  • Non compatible avec les versions précédentes
  • Niveau de sécurité et performance accrus
  • Possibilité de chiffrement des échanges

Installation et Configuration Serveur

Installation

Installation du serveur NFS :

apt install nfs-kernel-server

Cette commande installe le service NFS côté serveur avec tous les composants nécessaires.

Fichiers importants

  • Configuration des exports : /etc/exports
  • Logs : /var/log/syslog

Gestion des exports

Commande exportfs

La commande exportfs permet de gérer dynamiquement les partages NFS :

  • exportfs -v : Affiche tous les partages actifs avec leurs options
  • exportfs -a : Exporte tous les répertoires listés dans /etc/exports
  • exportfs -u : Désactive tous les partages
  • exportfs -r : Réexporte tous les partages (utile après modification de /etc/exports)

Exemple de configuration dans /etc/exports

/srv/data 192.168.1.1(rw) 192.168.0.0/16(ro,all_squash)

Explication :

  • /srv/data : Chemin du répertoire à partager
  • 192.168.1.1(rw) : Accès en lecture/écriture pour cette IP
  • 192.168.0.0/16(ro,all_squash) : Accès en lecture seule pour ce réseau avec conversion des utilisateurs

Options principales

  • ro : Système de fichiers en lecture seule
  • rw : Système de fichiers en lecture/écriture
  • sync : Écriture synchrone (attend la confirmation d'écriture sur le disque)
  • async : Écriture asynchrone (plus rapide mais moins sûre)
  • wdelay : Retarde l'écriture sur disque si une autre requête est imminente
  • no_wdelay : Désactive le délai d'écriture
  • root_squash : Les requêtes root distantes sont exécutées avec un compte utilisateur simple
  • no_root_squash : Permet l'accès root (attention aux implications de sécurité)
  • all_squash : Tous les utilisateurs sont convertis en utilisateur anonyme

Configuration Client

Prérequis

Installation du client NFS :

apt install nfs-common

Commande showmount

Permet de voir les exports disponibles sur un serveur NFS :

showmount -e serveur_nfs
  • -e : Liste les exports
  • -a : Liste tous les montages actifs

Montage manuel

mount.nfs –o soft IP_SRV_NFS:/srv/data /mnt/partage-nfs

Options importantes :

  • soft : Le client abandonne après un timeout (recommandé)
  • hard : Le client réessaie indéfiniment (comportement par défaut)
  • timeo=<n> : Délai avant nouvelle tentative (en dixièmes de seconde)
  • retrans=<n> : Nombre de tentatives avant échec
  • vers=4 : Force l'utilisation de NFSv4

Montage automatique (/etc/fstab)

IP_SRV_NFS:/srv/data /mnt/partage-nfs nfs auto,soft 0 0

Explication des champs :

  1. Source du montage (serveur:chemin)
  2. Point de montage local
  3. Type de système de fichiers (nfs)
  4. Options de montage
  5. Option dump (0 = pas de sauvegarde)
  6. Ordre fsck (0 = pas de vérification)

Samba

Présentation

Samba est un logiciel libre sous licence GNU GPL permettant :

  • Services de domaine Active Directory
  • Services de fichiers SMB / CIFS
  • Services d'impression

Configuration serveur

Installation et fichiers

Installation du serveur Samba :

apt install samba

Fichiers importants :

  • Configuration : /etc/samba/smb.conf
  • Logs : /var/log/samba/log.*

Services

  • smbd : Services SMB/CIFS pour le partage de fichiers et d'imprimantes
  • nmbd : Service de résolution de noms NetBIOS
  • samba-ad-dc : Services Active Directory

Vérification de la configuration

La commande testparm permet de valider la configuration :

# Vérification simple
testparm

# Affichage détaillé
testparm -v

# Vérification sans interaction
testparm -s

Exemple de configuration

[global]
map to guest = Bad User

[public]
path = /srv/public/
read only = no
guest ok = yes

[service]
path = /srv/stagiaires/
read only = no
valid users = @stagiaires Gilles

Explication des sections :

  • [global] : Paramètres généraux du serveur
  • [public] : Définition d'un partage public
  • [service] : Définition d'un partage restreint

Gestion des comptes utilisateurs

Commandes principales

pdbedit

Gestion de la base de données des utilisateurs Samba :

# Lister tous les utilisateurs
pdbedit -L

# Ajouter un utilisateur
pdbedit -a -u Utilisateur

# Afficher les détails d'un utilisateur
pdbedit -Lv Utilisateur

# Supprimer un utilisateur
pdbedit -x -u Utilisateur
smbpasswd

Gestion des mots de passe :

# Modifier le mot de passe d'un utilisateur
smbpasswd Utilisateur

# Désactiver un compte
smbpasswd -d Utilisateur

# Activer un compte
smbpasswd -e Utilisateur

Configuration client

Client Linux

Installation
apt install cifs-utils
Montage manuel
mount.cifs -o username=demo,password="secret" //10.11.12.14/public /mnt/partage-smb

Options importantes :

  • username : Nom d'utilisateur
  • password : Mot de passe (attention : en clair)
  • uid : UID de l'utilisateur local
  • gid : GID du groupe local
  • file_mode : Permissions des fichiers
  • dir_mode : Permissions des répertoires
Montage automatique (/etc/fstab)
//10.11.12.14/public /mnt/partage-smb cifs auto,credentials=/root/.creds 0 0

Le fichier credentials (/root/.creds) doit contenir :

username=demo
password=secret
Utilisation de smbclient

Client en ligne de commande similaire à FTP :

# Lister les partages disponibles
smbclient -L 10.11.12.14 -U Utilisateur

# Se connecter à un partage
smbclient //10.11.12.14/service -U Utilisateur

Commandes disponibles dans smbclient :

  • ls : Liste les fichiers
  • cd : Change de répertoire
  • get : Télécharge un fichier
  • put : Envoie un fichier
  • mget : Télécharge plusieurs fichiers
  • mput : Envoie plusieurs fichiers
  • quit : Quitte le client

Client Windows

Méthodes d'accès
  • Chemin UNC : Accès direct via \\serveur\partage
  • Commande net use :
net use Z: \\10.11.12.14\service /user:Utilisateur

Options :

  • Z: : Lettre du lecteur à mapper
  • /user: : Spécifie l'utilisateur
  • /persistent:yes : Rend le mapping permanent
  • PowerShell :
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\10.11.12.14\service" Persist -Credential "Utilisateur"

Paramètres :

  • -Name : Lettre du lecteur
  • -PSProvider FileSystem : Indique qu'il s'agit d'un système de fichiers
  • -Root : Chemin UNC du partage
  • -Persist : Rend le mapping permanent
  • -Credential : Spécifie les informations d'authentification