SI5 - SMB/CIFS
TP 02 jeudi 28 janvier 2012 rappels :
- SMB : Server Message Block - 1985 IBM
- CIFS : Common Internet File System - 1998 Microsoft
- SMB2 : Server Message Block version 2 - 2010 Windows Vista, puis Windows 7
- Rôle : partage de fichier/répertoires et imprimantes en environnement Windows
- Fonctionnement : client/serveur
NB : utilisation intensive de la bande passante réseau (Chaque client reporte sa présence à tout le réseau via des broadcasts)
Objectifs
- mettre en oeuvre un serveur de fichiers SMB/CIFS sur :
- une machine Windows
- une machine Linux avec Samba
- tester l'accès depuis un client Windows et depuis un client Linux
Prérequis
- une machine Windows XP : srvXpPN (serveur - mode bridge, PN sont vos initiales)
- une seconde machine XP : cltXpPN (client - mode bridge, PN sont vos initiales)
- une machine Linux Debian : squeezePN (serveur et client - mode bridge, PN sont vos initiales)
NB: une machine XP “légère” est disponible sur STORE. Pensez à désactiver le pare-feu sur les serveurs !
ETAPE 1: Mise en œuvre d'un serveur de fichiers SMB sur une machine Windows XP
Le service de partage de fichiers est installé et fonctionne par défaut sur chaque machine Windows (à vérifier)
- sur le serveur créer deux comptes utilisateurs : pierre et paul
net user pierre mdp /add
- vérifier avec la commande
net user pierre
NB: dans l'explorateur Windows, vous pouvez vérifier en passant par le panneau de configuration/comptes utilisateurs
Création des partages
- créer un répertoire pub à la racine du disque c: sur le serveur
mkdir c:\pub
- Partager ce répertoire pub
net share pub=c:\pub
- on peut alors vérifier avec la commande net share
- dans l'explorateur Windows,
- aller dans le menu outils puis choisir options des fichiers, onglet affichage
- vérifier que la case utiliser le partage de fichiers simple (recommandé) n'est pas cochée
- clic droit sur le répertoire pub et dans l'onglet Partage (choisir le nom pub), donner des droits
- en modification pour pierre et
- en lecture seule pour paul
- dans l'onglet sécurité donner tous les droits (contrôle total) aux utilisateurs afin de désactiver la couche NTFS qui occulterait SMB
- déposer un fichier quelconque dans c:\pub
Accès depuis une machine Windows
- depuis la machine client cltXpPN, dans l'explorateur,taper dans l'adresse le chemin UNC du partage : \\srvXpPN\pub
- on peut alors explorer le partage pub après authentification avec un compte et son mot de passe
- ou bien depuis la ligne de commande taper :
net view \\srvXpPN
- se connecter avec le compte paul
- essayer de créer un répertoire dans pub, le système doit refuser
- se connecter avec le compte pierre
- essayer de créer un répertoire dans pub, le système doit accepter
Accès depuis une machine Linux avec smbclient
- sur la machine squeeze, installer les paquets smbclient et smbfs
- tester que l'on voit bien la machine srvXpPN avec la commande suivante (en mode anonyme)
pierre@squeeze:~$ smbclient -L srvXpPN Enter pierre's password: Anonymous login successful Domain=[WORKGROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- Error returning browse list: NT_STATUS_ACCESS_DENIED Anonymous login successful Domain=[WORKGROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- Workgroup Master --------- -------
- on peut se connecter en tant qu'utilisateur pierre avec l'option -U
pierre@squeeze:~$ smbclient -L srvXpPN -U Enter pierre's password: Domain=[srvXpPN] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- pub Disk IPC$ IPC IPC distant print$ Disk Pilotes d'imprimantes ADMIN$ Disk Administration à distance C$ Disk Partage par défaut
- accéder au partage pub sur srvXpPN en tant qu'utilisateur pierre
phierre@squeeze:~$ smbclient //srvXpPN/pub -U pierre Enter pierre's password: Domain=[srvXpPN] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] smb: \> ls . D 0 Wed Mar 26 18:58:28 2008 .. D 0 Wed Mar 26 18:58:28 2008 mp3 D 0 Fri Dec 23 17:55:31 2011 photos D 0 Sun Mar 28 16:32:52 2010 44998 blocks of size 2097152. 157 blocks available smb: \>
- on peut alors
- obtenir la liste des fichiers avec ls
- créer un répertoire avec mkdir
- supprimer un fichier avec rm
- récupérer un fichier avec get <fichier>
- déposer un fichier avec put <fichier>
- obtenir de l'aide avec help
Accès depuis une machine Linux avec montage du répertoire distant
- pour effectuer le montage, il faut disposer d'un répertoire : /mnt/srvXpPN
root@squeeze:~# mkdir /mnt/srvXpPN
- on peut alors monter le partage \\srvXpPN\pub sur /mnt/srvXpPN avec
root@squeeze:~# mount -t smbfs -o username=pierre //srvXpPN/pub /mnt/srvXpPN
- l'option -o username permet de spécifier l'utilisateur
- la commande mount affiche les systèmes de fichiers montés dont /mnt/srvXpPN
- la ressource distante \\srvXpPN\pub est alors accessible dans le répertoire /mnt/srvXpPN
- on peut utiliser les commandes usuelles : ls, ….
- en fin de travail, on peut démonter la ressource avec
root@squeeze:~# umount /mnt/srvXpPN
ETAPE 2: Mise en œuvre d'un serveur de fichiers SMB sur une machine Linux
Installation du serveur Samba
- sur la machine Linux, installer le paquet samba
- créer deux utilisateurs pierre et paul avec
root@squeeze:~# adduser pierre
- même chose pour paul,
- créer le répertoire /home/pub qui sera partagé
- puis spécifier les droits 777 pour /home/pub (accès complet pour tout les utilisateurs), la sécurité sera assurée par le serveur Samba
root@squeeze:~# mkdir /home/pub root@squeeze:~# chmod 777 /home/pub
- il faut maintenant paramétrer le serveur samba
Création d'un partage
- éditer le fichier /etc/samba/smb.conf avec l'éditeur de votre choix
- au bout du fichier ajouter les lignes suivantes
[pub] comment = Repertoire public path = /home/pub # chemin du partage guest ok = no create mask = 0666 writeable = yes # on peut écrire valid user = pierre, paul # pierre et paul ont accès au partage write list = pierre # seul pierre peut écrire
- quitter en sauvegardant smb.conf
- tester la configuration avec la commande testparm
- relancer samba par
root@squeeze:~# service samba restart
- vérifier le fonctionnement de Samba avec smbstatus
root@squeeze:~# smbstatus Samba version 3.5.6 PID Username Group Machine ------------------------------------------------------------------- Service pid machine Connected at ------------------------------------------------------- No locked files
Création des comptes samba
- créer les comptes samba pour pierre et paul
root@squeeze:~# smbpasswd -a pierre
Accès depuis une machine Windows
- on accède alors au serveur Samba comme à tout serveur Windows
- par l'explorateur et le voisinage éseau
- en spécifiant le chemin UNC du serveur ou du partage : \\squeeze ou \\squeeze\pub
- tester les connexions avec les utilisateurs Pierre et Paul et vérifier la différence de comportement à propos du droit en écriture
- on peut également connecter un répertoire distant à une unité logique : ici, on connecte la ressource \\squeeze\pub à l'unité logique p:
c:\> net use p: \\squeeze\pub
- la commande net use sans paramètres permet également de voir les connexions aux partages distants
c:\> net use
Pour finir
- copier sur votre machine Debian squeeze un fichier situé sur votre partage \\srv0210019g\albert.dupont au moyen du protocole SMB/CIFS
- copier un fichier dans le partage pub de squeeze depuis une machine cltXpPN ou srvXpPN