Vous êtes sur la page 1sur 7

Mise en place de Samba sous Linux

Posez votre question


Mars 2017

Introduction
Un des principaux intrts des rseaux est la possibilit de partager des
fichiers.

Il existe des protocoles (notamment le FTP, File Transfert Protocol) permettant


de transfrer des fichiers l'aide de commandes travers un rseau
htrogne (constitu de machines de types et de systmes d'exploitation
diffrents). Toutefois, ce type de manipulation est assez fastidieux. Ainsi, les
rseaux Microsoft Windows (actuellement trs rpandus dans les rseaux
locaux) offrent une manire totalement transparente de partager des fichiers,
en permettant notamment la copie par simple glisser-dposer.
Cependant, ce type de rseau ne permet la base qu'un partage de fichiers
entre machines fonctionnant avec un systme Microsoft Windows ou OS/2.
Ainsi, si vous possdez une machine sous linux, il existe une solution:
utiliser Samba. D'autre part, Samba permet de dfinir des niveaux d'accs trs
pointus trs proches de ceux proposs 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 rseaux Microsoft Windows. C'est--dire
qu'il permet de partager les fichiers et les imprimantes d'un serveur linux avec
les ordinateurs d'un rseau microsoft windows, et de manire 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 et 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 NetBEUI (ainsi que TCP/IP). L'intrt
de TCP/IP provient du fait qu'il a t trs largement adopt. Ainsi TCP/IP est
dj implment sur la plupart des systmes d'exploitation (Unix, Linux,
AmigaOS, MacOS, OS/2, ...). selon le schma suivant :

Applications

SMB

NetBIOS IPX/SPX

TCP/IP NetBEUI

Pilote Rseau

Architecture de Samba
Samba est constitu d'un serveur et d'un client, ainsi que de quelques outils
permettant de raliser des services pratiques ou bien de tester la configuration.
Le serveur est constitu de deux applications (appeles dmons) :
smbd, noyau du serveur, fournissant les services
d'authentification et d'accs aux ressources
nmbd, permettant de montrer les services offerts par Samba
(affichage des serveurs Samba dans le voisinage rseau, ...)
le client: smbclient est un client pour linux fournissant une interface
permettant de transfrer des fichiers, accder des imprimantes
smbtar: permettant d'effectuer un transfert de ou vers un fichier TAR
sous linux
testparm vrifiant la syntaxe du fichier smb.conf, le fichier de
configuration de Samba

Installation de Samba
Avant d'installer Samba, il faut bien videmment rcuprer les fichiers RPM ou
bien les sources, et ajouter les protocoles TCP/IP et NetBIOS sur les machines
clientes afin de leur permettre d'accder aux services de Samba.
L'installation (contrairement la configuration) est trs simple mettre en
oeuvre. Il suffit dans un premier temps de rcuprer 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 faon plus gnrale :
rpm -ivh samba-*.rpm

Premier dmarrage de Samba


Aprs installation, le serveur de Samba devrait normalement tre apte
dmarrer (sans aucun partage de fichiers ou d'imprimante) en lanant 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 contrler que les deux dmons sont
correctement lancs
/etc/rc.d/init.d/smb status
smbd (pid 1054) is running...
nmbd (pid 1056) is running...
Il existe une commande permettant de redmarrer Samba :
/etc/rc.d/init.d/smb restart
On lui prfrera 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 effectue par l'intermdiaire d'un fichier de
configuration unique: smb.conf. Ce fichier est situe dans le
rpertoire /usr/local/samba/lib.

Ce fichier dcrit les ressources que l'on dsire partager, ainsi que les
permissions/restrictions qui leur sont associes. Le fichier smb.conf se
dcoupe selon des rubriques (chacune rfrenc par une ligne contenant le
nom de la section entre crochets) comprenant chacune un ensemble de lignes
de paramtres du type attribut = valeur. Une ligne commenant par un # est
une ligne de commentaires.
Il existe 3 sections principales :
La section [global] dfinit des paramtre gnraux sur le serveur
La section [homes] dfinit le partage d'un rpertoire personnel
La section [printers] dfinit les imprimantes partages par le serveur

Section [global]
Voici un exemple de section [global] :
[global]

# mme nom de groupe que celui sous Windows (Voisinage rseau)


workgroup = UNDERTAKER
# aucun compte invit
guest account = nobody ;
# accs multi-utilisateur
share modes = yes ;
# Adresse IP de la carte rseau du serveur
# et masque de sous-rseau
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 dfinies dans printcap
load printers = yes
# fichier journal de Samba
log level = 1
log file = /var/log/samba/log.%m
# mode de scurit : (user / share / server)
security = user
# restreindre l'accs a certains sous-rseaux
hosts allow = 15.144. 127.
# empecher l'accs certaines machines
hosts allow = 15.144. EXCEPT 155.144.179.2

Partage du rpertoire personnel


La section [homes] permet de dfinir l'accs au rpertoire personnel de
chaque utilisateur. Voici un exemple de section :
[HOMES]

# commentaire visible depuis le voisinage reseau


comment =Rpertoire personnel
# affichage de la ressource pour tous
browseable = no
# possibilit d'crire sur la ressource
writable = yes
create mask = 0750

Partager un rpertoire quelconque


Il est possible de dfinir une accs personnalis n'importe quel rpertoire de
la machine en crant une section portant le nom que le veut donner la
ressource. Celui-ci contiendra entre autres un paramtre path donnant le
chemin d'accs la ressource.

Voici un exemple de section personnalise :


[CCM]

# commentaire visible depuis le voisinage reseau


comment = Rpertoire 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 = jef,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
pralablement mont) , en crant par exemple une section [cd-rom] comme
suit :
[CD-ROM]

# commentaire visible depuis le voisinage reseau


comment = lecteur de CD-ROM
# chemin d'accs 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 vrifier la syntaxe du fichier de configuration
(smb.conf). Il est conseill d'excuter 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 vrifie que la syntaxe, non le
fonctionnement).
Afin de pouvoir visualiser correctement les rsultats, vous pouvez rediriger la
sortie vers un fichier par la commande
testparm smb.conf > /rpertoires/fichier

Accder une ressource Samba sous


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

smbclient permet en premier lieu de vrifier l'existence d'une serveur Samba


sur le rseau et de lister les ressources qu'il partage grce la commande :
smbclient nom_serveur_smb
Une fois les ressources identifies, il est possible d'accder 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 rpertoires de la ressource.
L'accs 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'arrt 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 grer 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 simultanment
sur Ctrl+D.

Monter une ressource Samba partage


Les utilitaires smbmount et smbumount permettent de monter de dmonter des
ressources SMB en tant que systme de fichiers distant (pour peu que le noyau
supporte le systme de fichiers SMB).

Pour monter une ressource la syntaxe est la suivante :


smbmount //nom_serveur_smb /point_de_montage
Pour dmonter une ressource la syntaxe est la suivante :
smbumount /point_de_montage