Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Configuration TCP/IP
Routage PPP
Samba
Version 2.0.3
Mise en place d'un serveur Samba sous Linux Page précédente Retour à la page d'accueil

Introduction

Un des principaux intérêts des réseaux est la possibilité de partager des fichiers.

Il existe des protocoles (notamment le FTP, File Transfert Protocol) permettant de transférer des fichiers à l'aide de commandes à travers un réseau hétérogène (constitué de machines de types et de systèmes d'exploitation différents). Toutefois, ce type de manipulation est assez fastidieux. Ainsi, les réseaux Microsoft Windows (actuellement très répandus dans les réseaux locaux) offrent une manière totalement transparente de partager des fichiers, en permettant notamment la copie par simple glisser-déposer.
Cependant, ce type de réseau ne permet à la base qu'un partage de fichiers entre machines fonctionnant avec un système Microsoft Windows ou OS/2. Ainsi, si vous possèdez une machine sous linux, il existe une solution: utiliser Samba. D'autre part, Samba permet de définir des niveaux d'accès très pointu très proche de celui proposé par un serveur Windows NT. Samba est donc une alternative économique et robuste à un recours à un serveur Windows NT.

Qu'est-ce que Samba ?

Samba (www.samba.org) est un serveur de fichiers pour Linux (en licence GNU GPL, donc libre) compatible avec les réseaux Microsoft Windows. C'est-à-dire qu'il permet de partager les fichiers et les imprimantes d'un serveur linux avec les ordinateurs d'un réseau microsoft windows, et de manière totalement transparente: Linux passe pour un serveur Windows NT aux "yeux" des clients Windows. Les clients pour Microsoft Windows deviennent alors en quelque sorte des clients Linux...

Comment fonctionne Samba ?

Le protocole de communication permettant cette communication entre Windows est Linux s'appelle SMB (Server Message Block). Mis au point par Microsoft en 1987, en reprenant un concept mis au point par IBM en 1985 (NetBIOS), ce protocole s'appuie sur NetBIOS (ainsi que TCP/IP). L'intérêt de TCP/IP provient du fait qu'il a été très largement adopté. Ainsi TCP/IP est déjà implémenté sur la plupart des systèmes d'exploitation (Unix, Linux, AmigaOS, MacOS, OS/2, ...). selon le schéma suivant :

Applications
SMB
NetBIOS
TCP/IPNetBEUI
IPX/SPX
Pilote Réseau

Architecture de Samba

Samba est constitué d'un serveur et d'un client, ainsi que de quelques outils permettant de réaliser des services pratiques ou bien de tester la configuration.

  • Le serveur est constitué de deux applications (appelées démons):
    • smbd, noyau du serveur, fournissant les services d'authentification et d'accès aux ressources
    • nmbd, permettant de montrer les services offerts par Samba (affichage des serveurs Samba dans le voisinage réseau, ...)
  • le client: smbclient est un client pour linux fournissant une interface permettant de transférer des fichiers, accèder à des imprimantes
  • smbtar: permettant d'effectuer un transfert de ou vers un fichier TAR sous linux
  • testparm vérifiant la syntaxe du fichier smb.conf, le fichier de configuration de Samba

Installation de Samba

Avant d'installer Samba, il faut bien évidemment récupérer les fichiers RPM ou bien les sources, et ajouter les protocoles TCP/IP et NetBIOS sur les machines clientes afin de leur permettre d'accèder aux services de Samba.

L'installation (contrairement à la configuration) est très simple à mettre en oeuvre. Il suffit dans un premier temps de récupérer les fichiers RPM, puis dans un second temps de les installer:

rpm -ivh samba-common-2.0.6-x.i386.rpm

rpm -ivh samba-2.0.6-x.i386.rpm

rpm -ivh samba-client-2.0.6-x.i386.rpm

ou bien de façon plus générale:
rpm -ivh samba-*.rpm

Premier démarrage de Samba

Après installation, le serveur de Samba devrait normalement être apte à démarrer (sans aucun partage de fichiers ou d'imprimante) en lançant la commande suivante:

/etc/rc.d/init.d/smb start
Le serveur devrait alors renvoyer les lignes suivantes:
Starting SMB services:

Starting NMB services:
La commande suivante permet de contrôler que les deux démons sont correctement lancés
/etc/rc.d/init.d/smb status

smbd (pid 1054) is running...

nmbd (pid 1056) is running...
Il existe une commande permettant de redémarrer Samba:
/etc/rc.d/init.d/smb restart
On lui préfèrera les deux commandes suivantes:
/etc/rc.d/init.d/smb stop

/etc/rc.d/init.d/smb start

Configuration de Samba

La configuration de Samba est effectuée par l'intermédiaire d'un fichier de configuration unique: smb.conf. Ce fichier est située dans le répertoire /usr/local/samba/lib.

Ce fichier décrit les ressources que l'on désire partager, ainsi que les permissions/restrictions qui leur sont accosiée. Le fichier smb.conf se découpe selon des rubriques (chacune référencé par une ligne contenant le nom de la section entre crochets) comprenant chacune un ensemble de lignes de paramètres du type attribut = valeur. Une ligne commençant par un # est une ligne de commentaires.

Il existe 3 sections principales:

  • La section [global] définit des paramètre généraux sur le serveur
  • La section [homes] définit le partage d'un répertoire personnel
  • La section [printers] définit les imprimantes partagées par le serveur

Section [global]

Voici un exemple de section [global]:

[global]

    # même nom de groupe que celui sous Windows (Voisinage réseau)

workgroup = UNDERTAKER



    # aucun compte invité 

guest account = nobody ; 



    # accès multi-utilisateur 

share modes = yes ; 



    # Adresse IP de la carte réseau du serveur 

    # et masque de sous-réseau

interfaces = 10.194.2.100/255.255.255.0 



    # emplacement du fichier printcap (imprimantes sur le serveur Linux)

printcap = /etc/printcap

    # partage de toutes les imprimantes définies dans printcap

load printers = yes



    # fichier journal de Samba

log level = 1

log file = /var/log/samba/log.%m



    # mode de sécurité : (user / share / server)

security = user



    # restreindre l'accès a certains sous-réseaux

hosts allow = 15.144.    127.

    # empecher l'accès à certaines machines

hosts allow = 15.144.  EXCEPT 155.144.179.2



Partage du répertoire personnel

La section [homes] permet de définir l'accès au répertoire personnel de chaque utilisateur. Voici un exemple de section:

[HOMES]

# commentaire visible depuis le voisinage reseau

comment =Répertoire personnel 



# affichage de la ressource pour tous

browseable = no 



# possibilité d'écrire sur la ressource

writable = yes 



create mask = 0750 

Partager un répertoire quelconque

Il est possible de définir une accès personnalisé à n'importe quel répertoire de la machine en céant une section portant le nom que le veut donner à la ressource. Celui-ci contiendra entre autres un paramètre path donnant le chemin d'accès à la ressource.

Voici un exemple de section personnalisée:

[CCM]

# commentaire visible depuis le voisinage reseau

comment = Répertoire Ca Marche



# chemin d'acces a la ressource

path = /home/ccm



# affichage de la ressource pour tous

browseable = no 



# chemin d'acces a la ressource

public = no



# utilisateur autorise a acceder a la ressource

user = jeff,meandus,tittom



# possibilité d'écrire sur la ressource

writable = yes 



create mask = 0750 

Partage d'un lecteur de CD-ROM

Il est ainsi possible de partager un lecteur de CD-ROM (celui-ci devant être préalablement monté) , en créant par exemple une section [cd-rom] comme suit:

[CD-ROM]

# commentaire visible depuis le voisinage reseau

comment = lecteur de CD-ROM



# chemin d'accès au lecteur

path = /mnt/cdrom



# accessible à tous

public = yes



# impossibilité d'écrire sur la ressource

writable = no



create mask = 0750 

Test de la configuration

Le programme testparm permet de vérifier la syntaxe du fichier de configuration (smb.conf). Il est conseillé d'exécuter cet utilitaire à chaque modification manuelle du fichier smb.conf. La syntaxe de testparm est la suivante:

testparm smb.conf
Si celui-ci ne renvoie aucun message d'erreur, la syntaxe du fichier smb.conf est alors correcte (il ne vérifie que la syntaxe, non le fonctionnement).

Afin de pouvoir visualiser correctement les résultats, vous pouvez rediriger la sortie vers un fichier par la commande

testparm smb.conf > /répertoires/fichier

Accéder à une ressource Samba sous Linux

Le client Samba (smbclient) permet de fournir une interface en ligne de commande pour accéder aux ressources Samba à partir d'une machine de type Unix.

smbclient permet en premier lieu de vérifier l'existence d'une serveur Samba sur le réseau et de lister les ressources qu'il partage grâce à la commande:

smbclient nom_serveur_smb

Une fois les ressources identifiées, il est possible d'accèder à chacune d'entre elles par la commande:

smbclient \\\nom_serveur_smb\\ressource -U nom_utilisateur
Un mot de passe devrait être demandé à l'utilisateur. Il suffit ensuite d'envoyer des commandes FTP afin d'envoyer/recevoir des fichiers ou bien de parcourir les répertoires de la ressource.

L'accès à une imprimante se fait par la commande

smbclient \\\nom_serveur_smb\\ressource -P
  • l'impression du fichier /usr/local/samba/lib/etc.conf se fait par la commande:
    print /usr/local/samba/lib/etc.conf
  • la visualisation de la queue d'impression:
    queue
  • l'arrêt de smbclient:
    exit

Envoyer un message

Le client Samba permet aussi d'envoyer des messages sur un client LanManager (pour peu que la machine distante permette de gérer ce type de message, comme par exemple avec WinPopUp). La syntaxe d'envoi d'un message (de moins de 1600 octets) est la suivante:

smbclient -M nom_de_la_machine
Lorsque vous avez fini d'écrire le message, il faut appuyer simultanément sur Ctrl+D.

Monter une ressource Samba partagée

Les utilitaires smbmount et smbumount permettent de monter de démonter des ressources SMB en tant que système de fichiers distant (pour peu que le noyau supporte le système de fichiers SMB).

Pour monter une ressource la syntaxe est la suivante:

smbmount //nom_serveur_smb /point_de_montage

Pour démonter une ressource la syntaxe est la suivante:

smbumount /point_de_montage


Page précédente

Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.