Vous êtes sur la page 1sur 4

SAMBA

Samba est un logiciel d'interopérabilité qui implémente le protocole propriétaire SMB


de Microsoft Windows dans les ordinateurs tournant sous le système d'exploitation Unix et
ses dérivés de manière à partager des imprimantes et des fichiers dans un réseau
informatique4. Samba facilite l'interopérabilité entre systèmes hétérogènes Windows-Unix. Il
offre la possibilité aux ordinateurs d'un réseau d'accéder aux imprimantes et aux fichiers des
ordinateurs sous Unix5 et permettent aux serveurs Unix de se substituer à des serveurs
Windows6.

TP 1 :
Cette activité vise à partager un fichier sur une machine Windows et y accéder à partir
d'une machine linux.
linux1 : 192.168.1.10
ClientWindows : 192.168.1.20
1. Vérifier est ce que les packages smbclient est installé
#rpm -qa|grep -i samba
2. Vérifier les fichiers de samba client
#rpm -ql samba-client
Les commandes de samba
/usr/bin/findsmb -- trouver les clients samba dans votre subnet (Netbios)
/usr/bin/smbclient -- permet de se connecter aux partages
/usr/bin/smbtar -- compresser le partage
/usr/bin/smbtree -- équivalent de favoris réseaux (Netbios)

nmblookup est un outil de résolution de noms pour NetBIOS


3. Créer un partage réseau sous windows
4. Trouver les partages réseau
#findsmb
#smbtree
5. Se connecter au partage réseau sur le client VCCLIENT-PC avec utilisateur vclient
#smbclient -U vclient // VCCLIENT-PC/sahpart
Remarque :
vclient est un client crée sous Windows 7
//VCCLIENT-PC/sahpart est le nom du partage ou //192.168.1.20/ sahpart
Le nom de la machine a été vérifié par la commande smbtree
smb : >help

6. Récupérer les fichiers test à partir de la machine 7 vers linux


smb : >mget test

!ls et !pwd pour voir l'emplacement de copie de fichier sous linux


7. Transférer les fichiers de linux vers windows 7
cd /home/tux1
echo "fichier test " >tux1f1
echo "fichier test " >tux12
mput tux*
8. Récupérer un fichier à partir de la machine 7 vers linux en utilisant le nom par une seule
commande
#smbget -u vclient smb://VCLIENT-PC/sahpart/smbtest/cours.txt
9. Récupérer tout le contenu d'un dossier à partir de la machine 7 vers linux en le
compressant vers un fichier.tar par une seule commande
#smbtar -s VCLIENT-PC -x sahpart -u vclient -t sahpart.tar -p 123
Pour monter le partage :
#mount.cifs -o user= vclient,pass=root123 //192.168.0.30/dossier /part2
TP 2 :
Cette activité vise à partager un fichier sur une machine linux et y accéder à partir
d'une machine linux
Sous linux1
1- Désactiver Selinux
#setenforce 0
2- Editer le fichier /etc/hosts

3- Vérifier est ce que le package est installé si non installer le package


#rpm -qa | grep samba

#rpm -ivh pytalloc-2.1.6-1.el7.i686.rpm


#rpm -ivh samba-libs-4.4.4-9.el7.i686.rpm
#rpm -ivh samba-common-tools-4.4.4-9.el7.i686.rpm
#rpm -ivh samba-4.1.33-3.7.el5.i386.rpm

4- Lister et démarrer le statut du service samba par la commande :


#systemctl status smb
#systemctl start smb
#systemctl enable smb
5- Créer le dossier de partage est le rempli par des fichiers
#mkdir /smb-data1
#chmod 777 /smb-data1
#touch /smb-data1/f1 /smb-data1/f2 /smb-data1/f3
#chmod 666 /smb-data1/f*
6- Editer le fichier /etc/samba/smb.conf
# /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
netbios name = tux1
server string = Serveur de fichiers tux1
dns proxy = yes
domain master = no
log file = /var/log/samba/log.%m
log level = 0
max log size = 1000
bind interfaces only = yes
interfaces = 192.168.0.0/24 localhost
security = user
passdb backend = tdbsam
unix password sync = no
invalid users = root
encrypt passwords = yes
guest account = smbguest
map to guest = bad user
force group = users
create mode = 0660
directory mode = 0770

[smb-data1]
path = /smb-data1
comment = Partage Public
public = yes
only guest = yes
read only = no

[smb-data2]
path = /smb-data2
comment = Partage Confidentiel
read only = no
invalid users = root nobody smbguest

Les options méritent quelques explications.

▪ workgroup = WORKGROUP définit le nom du groupe de travail. Les clients Windows doivent tous
être membres de ce groupe de travail.
▪ netbios name = AMANDINE définit le nom qui apparaîtra dans le Voisinage Réseau de Windows.
Théoriquement, on pourrait très bien indiquer deux noms de machine différents pour les
protocoles TCP/IP et NetBIOS. En pratique, on essaiera de rester cohérent, et on utilisera le nom
d’hôte du serveur (AMANDINE).
▪ server string = Serveur de fichiers AMANDINE indique le nom avec lequel le serveur s’identifie.
▪ dns proxy = yes active l’utilisation du serveur DNS local pour résoudre les noms d’hôtes
Windows.
▪ La directive domain master désigne un serveur Samba “maître” pour le domaine local. On
utilisera yes sur le serveur principal et no sur les autres serveurs. “Serveur principal” signifie ici
quelque chose comme “la machine la plus fiable” ou “le serveur qu’on éteint le moins souvent”.
▪ log file = /var/log/samba/log.%m définit la journalisation. Pour chaque client qui utilise Samba,
un fichier journal log.client est créé. Quant aux services Samba smbd et nmbd, ils utilisent des
événements globaux dans les deux fichiers /var/log/samba/log.smbd et log.nmbd. Ni le nom ni
l’emplacement de ces deux fichiers ne peuvent être modifiés.
▪ log level = 0 signifie que seuls les messages d’erreur sont journalisés. Pour obtenir une
journalisation plus “bavarde”, on remplacera la valeur 0 par 1, 2, 3, etc.
▪ max log size = 1000 limite la taille maximale du fichier journal à 1000 kilooctets. Lorsqu’un fichier
journal dépasse cette taille, Samba le renomme en fichier.old.
▪ La directive interfaces définit les interfaces réseau par lesquelles Samba est censé communiquer.
On veillera à faire apparaître les partages uniquement dans le réseau local. Ne pas
oublier localhost, faute de quoi les outils d’administration comme smbclient ne fonctionneront
pas sur le serveur.
▪ Les directives hosts allow et hosts deny permettent respectivement d’autoriser et d’interdire
l’accès de certaines machines du réseau à Samba.
▪ La directive security = user définit le modèle de sécurité de Samba.
▪ passdb backend = tdbsam définit la gestion des mots de passe. TDB signifie Trivial Database et
désigne un format de stockage binaire. Les mots de passe sont stockés dans le
fichier /var/lib/samba/private/passdb.tdb.
▪ unix password sync = no désactive la synchronisation des mots de passe Samba avec les mots de
passe Linux. Celle-ci est liée à toute une série de restrictions qui risquent de nous compliquer la
vie, et il vaut mieux s’en passer.
▪ guest account = smbguest désigne l’utilisateur Linux auquel on fait correspondre les utilisateurs
invités.
▪ map to guest = bad user renvoie vers le compte invité toute tentative de connexion avec un
identifiant inexistant.
▪ force group = users attribue tous les fichiers et répertoires nouvellement créés au groupe users.
▪ Les paramètres create mode = 660 et directory mode = 770 assurent que tous les fichiers (rw-rw-
---) et répertoires (rwxrwx---) créés par un membre du groupe puissent être lus par tous les
autres membres du groupe.
▪ Le nom du partage ([smb-data1], [smb-data2]) ne doit pas dépasser douze caractères.

7- Créer un utilisateur public smbguest pour Samba


#useradd -c "Utilisateur Public Samba" -g users -d /dev/null -s /sbin/nologin smbguest
# passwd -l smbguest
# smbpasswd -a smbguest

8- Créer un ou plusieurs utilisateurs Samba normaux


Si l’utilisateur dispose déjà d’un compte système :
#usermod -a -G users tux1
#smbpasswd –a tux1
Les utilisateurs qui ne disposent pas de compte système pourront être créés comme ceci
#useradd -c "user1" -s /sbin/nologin -d /dev/null user1
#passwd user1
# usermod -a -G users user1
# smbpasswd -a user1

La commande pdbedit permet d’afficher la liste des utilisateurs Samba.


# pdbedit -L
La commande testparm permet de tester la configuration.
# testparm

9- Activer et démarrer Samba.


# systemctl enable smb nmb
# systemctl start smb nmb
# systemctl status smb
# systemctl status nmb

Sur la machine client Windows

5- Tester l’accès au partage


\\192.168.1.10

Sous linux client


# smbstatus
# smbtree
# findsmb

Vous aimerez peut-être aussi