Previous Next Table of Contents

12. Samba : une porte vers les réseaux MS-Windows

Samba est une collections d'outils disponibles de façon libre sur les systèmes Un*x qui permettent d'accéder à un réseau MS-Windows. Samba permet ainsi à une machine Linux de devenir serveur de fichier pour tout un réseau sous MS-Windows, ou encore d'accéder aux différentes ressources qu'un serveur MS-Windows aura partagé.

12.1 Configuration de Samba sur la machine Linux

Si vous avez installé correctement samba, les 2 démons smbd et nmbd doivent êtres lancés automatiquement au boot de votre ordinateur. Si ça n'est pas le cas installez les packages avec rpm ou glint.

Les fichiers de configurations par défaut de samba se sont grandement améliorés récemment, en tout cas ceux fournis dans la RedHat m'ont permis d'accéder à mes répertoires homes assez facilement. Du moins, ils étaient suffisamment commentés pour permettre de servir de modèle à des modifications personnelles.

Cependant, je vais fournir une copie de celui de ma machine, qui permet de partager les répertoires home des utilisateurs, et offre un répertoire public pour tous les utilisateurs depuis la machine MS-Windows. De plus, il permet au serveur Samba (sous Linux) d'utiliser et de monter les ressources qui sont partagées par la machine MS-Windows.

[global]
   workgroup = ZEP_group
   comment = Tonio Samba Server
   volume = RedHat4

   printing = bsd
   printcap name = /etc/printcap
   load printers = yes

   log file = /var/log/samba-log.%m
   max log size = 50
   lock directory = /var/lock/samba
   locking = yes
   strict locking = no
   share modes = yes

   security = SHARE
   null passwords = yes
   socket options = TCP_NODELAY 

; Permet au serveur Samba de devenir serveur du domaine
   os level = 33
   domain master = yes 

; Facilite la gestion des noms longs
   preserve case = yes
   short preserve case = yes

; Chaque client accède à son répertoire
[homes]
   comment = Home Directories
   browseable = yes
   read only = no
   create mode = 0750

; Service d'impression pour partager les imprimantes
[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
   printable = yes
   public = no
   writable = no
   create mode = 0700

; Répertoire public /home/samba, accessible en lecture/écriture pour
; tout le monde
[public]
   comment = Repertoire Public
   path = /home/samba
   public = yes
   writable = yes
   browsable = yes
   printable = no
Une fois le fichier de configuration modifié, il faut relancer Samba avec :
/etc/rc.d/init.d/smb stop
/etc/rc.d/init.d/smb start

Enfin, si vous modifiez le fichier smb.conf, utilisez l'utilitaire testparm qui permet de vérifier la cohérence des informations de votre fichier.
Il permet également d'afficher la totalité de la configuration de votre serveur. Ce qui permet de vérifier la validité de vos modifications.

12.2 Configuration de la machine MS-Windows

Pour le moment, Samba ne permet d'accéder à la machine MS-Windows que si elle utilise une pile TCP/IP. En attendant la version qui devrait offrir un service direct avec NetBIOS. Il est donc nécessaire de configurer sous MS-Windows le support TCP/IP pour votre carte Ethernet, et d'affecter une adresse IP à votre machine.

Ceci étant fait après quelques reboots, devrait apparaître dans votre Voisinage Réseau votre nouveau serveur Samba sous Linux. Soyez patients, le support réseau de MS-Windows met parfois plus d'une minute pour "voir" les autres ordinateurs. Cependant en faisant Démarrer -> Rechercher Ordinateur et en entrant le nom de votre serveur Samba, il devrait s'afficher de manière quasi-instantanée.

Vous allez normalement alors pouvoir accéder au compte de l'utilisateur avec lequel vous êtes connectés sous MS-Windows, ainsi qu'à notre répertoire public /home/samba

12.3 Utilisations des outils smbclient et smbmount sur la machine Linux

Smbclient et smbmount permettent d'accéder aux différentes ressources offertes par le serveur MS-Windows.

smbclient : le ftp pour MS-Windows

smbclient permet de tester, répertorier et accéder aux ressources offertes par le serveur MS-Windows.

Tout d'abord, il est possible de vérifier si le serveur MS-Windows est bien disponible, et de lister les différentes ressources qu'il partage grâce à la commande :

$smbclient -L nom_serveur_windows
nom_serveur_windows représentant le nom que vous avez donné à votre machine sous MS-Windows.

Ensuite, il est possible d'accéder au différents fichiers de la ressource partagée en s'y connectant avec smbclient, puis de la parcourir et de récupérer les fichier exactement comme avec un ftp :

$smbclient \\\\nom_serveur_windows\\nom_ressource
Avec la majorité des Shell, il est nécessaire de doubler les backslash (\) pour qu'ils soient pris en compte.
nom_ressource représente le nom de la ressource partagé que l'on peut obtenir avec un smbclient -L

Après cela, il devrait vous être demandé un mot de passe (qui correspond à celui spécifié pour la ressource sous MS-Windows). Une fois le mot de passe entré, il n'y a plus qu'à parcourir les fichiers exactement comme avec ftp.

Smbmount : monter sous Linux des répertoires MS-Windows

Smbmount permet de monter (comme par NFS) des répertoires MS-Windows sur l'arborescence Linux et de les manipuler le plus naturellement du monde.

$smbmount //nom_serveur_windows/nom_ressource /mnt -f 777
smbmount utilise les '/' à la différence de smbclient.

Il est nécessaire de rajouter une entrée dans le fichier /etc/hosts pour nom_serveur_windows avec son adresse IP, pour que smbmount puisse marcher correctement.

Enfin, il est nécessaire de passer quelques paramètres pour assurer la compatibilité des droits de MS-Windows avec les droits Un*x. La clause -f 777 met tous les fichiers en lecture-écriture pour tout le monde.
On peut bien sûr la combiner avec l'option -u uid et -g gid qui permettrons de définir les droits précis des fichiers de la ressource pour pallier les carences de MS-Windows dans ce domaine.


Previous Next Table of Contents