logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Installer et configurer samba

Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

Qu'est-ce que samba ?

Samba est un logiciel libre sous licence GPL, permettant de supporter le protocole SMB/CIFS le partage de ressources réseau.

Le partage réseau a été développé par IBM en 1985 pour OS/2 et s'appelait alors LAN Manager. Il a ensuite été mis en avant par Microsoft sous le nom de SMB pour en faire un tout nouveau protocole de partage. Il a été appelé aussi CIFS (Common Internet File System ) entre 1998 et 2006, et a encore été renommé sous le nom de SMB2 pour la sortie de Windows Vista et conserve ce nom jusqu'à Windows 8.

Ces termes sont à connaître car ils apparaissent pour certains points de la configuration de samba, qui se charge de compatibilité avec ce protocole de partage réseau mais aussi avec différents produits Microsoft, comme NetBios (TCP/IP) et le nommage wins et maintenant DNS, et MSRPC (appel de procédure à distance), et il peut aussi être utilisé comme contrôleur de domaine “actif directory”.

Le protocole SMB/CIFS est toujours un logiciel propriétaire, et ces spécifications étaient donc fermées au début. Mais pour des raisons d'intéropérabilité, suite à un procès, Microsoft a été contraint d'ouvrir certaines de ses spécifications qui ont été distribuées par le MSDN (open Specifications Developer Center).

Samba a donc été créé afin de rendre possible la communication entre différents systèmes d'exploitations d'un même réseau, mais on peut aussi l'utiliser pour le partage de Linux à Linux.
On le doit d'abord aux travaux de rétro-ingénierie d'Andrew Tridgel qui est son principal développeur. Depuis 2007, et la fermeture des spécifications SMB le développement et les performances de samba ne cessent de se développer.

Configuration générale du serveur debian

Prenons, pour exemplifier une configuration simple, une machine virtuelle sur laquelle il a été installé un serveur Debian.

  • Le nom du système hôte sur lequel va être installé samba :
hostname
debian-1
Attention à la confusion entre serveur (samba ou autre) installé sur un système qui reste malgré tout “l'hôte”, on va dire de ce système.
  • Son adresse IP :
ip a s eth0
<...>
inet 192.168.0.15/24 brd 192.168.0.255
<...>
Il s'agit d'une machine virtuelle avec accès par pont dont l'adresse IP a été préalablement fixée par le serveur DHCP au niveau du FAI.
  • L'utilisateur principal du système :
echo $USER
first-user

Pré-requis

Création d'un compte user pour le partage de fichier

addgroup --system hypathie

Création d'un utilisateur système correspondant à l'utilisateur samba

adduser --system hypathie --ingroup hypathie

Création d'un fichier partageable

mkdir /home/hypathie/public

Mise en place des droits sur le répertoire et ses fichiers partageable

chown -R hypathie:hypathie /home/hypathie/
chmod 770 /home/hypathie/
chmod 770 /home/hypathie/public/

Installation de samba serveur

apt-get update
apt-get install samba

Configuration simple pour partage de fichiers entre Windows et Debian

Les fichiers samba

cd /etc/samba/ && ls</code
<code>dhcp.conf  gdbcommands	smb.conf 

Le fichier de configuration est smb.conf.

Sauvegarde de smb.conf

mv smb.conf smb.conf-OLD

Édition de smb.conf

vim smb.conf
/etc/samba/smb.conf
[global]
 
 workgroup = WORKGROUP         # par défaut et à laisser tel quel
 netbios name = debian-1       # nom du serveur visible sur le poste client Windows
 
 server string = %h server     # nom du serveur samba
 
 hosts allow = 192.168.0. 127. # ajouté et à modifier selon l'IP du réseau local
 
 security = user               # à décommenter
 
 bind interfaces only = yes    # mettre "yes" pour utiliser le choix des interfaces (ligne au dessous)
 interfaces = 192.168.0.15/24  # Pour éviter le wifi, on peut mettre à la place de l'IP/masque, le nom de l'interface "eth0:0"
 
 
 
[hypathie]                     # ajouté et à modifier selon le répertoire de partage 
path = /home/hypathie/         # créé sur le système lors de la création d'un nouvel utilisateur
read only = no
browseable = yes
writeable = yes
valid users = hypathie
write list = hypathie
create mask = 0700      # droits posix (octal = 0 devant 700): lecture, écriture, exécution pour l'utilisateur seulement
directory = 700
force user = nobody    # surtout si on partage la racine
force group = nogroup
Le fichier /etc/samba/smb.conf est constitué par section.
Les sections principales sont :
  • [global] : paramètres généraux (indiqué par un G dans le man).

Les paramètres obligatoires sont :

workgroup = MON-GROUPE  
Et il faut aller sur Windows créer un groupe du même nom
ou utiliser WORKGROUP qui le nom par défaut sur Windows
netbios name = Nom-du-serveur-samba
server string = serveur %h  
security = user        # mise en place de la politique d'authentification
encrypt passwords = true
À savoir sur security : Le mode “user” est le plus intéressant, mais il y a d'autres modes d'authentification que la mise en place d'un mot de passe utilisateur chiffré.
Le mode domain passe par workgroup qui définit un contrôleur de domaine.
Le mode “server” a été déprécié, il ne faut pas l'utiliser.
Il y a aussi le ADS qui se base sur Active Directory. Il faut alors définir un “realm2) et le mot de passe du serveur d'authentification 3)
  • [partage] : nom d'un partage (tout les paramètres indiqués par un S dans le man, également compatibles avec la section global).

On l'a appelé dans l'exemple [hypathie]. Les paramètres essentiels sont :

path = /chemin/de_ce_répertoire/à_partager_sur_le_réseau
Attention aux droits placés sur le répertoire et ses sous-répertoires et fichiers
Il est bon pour la sécurité de mettre en place une politique de partage :
lecture / écriture avec read only :
No ou Yes pour ne pas permettre ou permettre l'écriture.
Restriction de l'écriture à un utilisateur ou une liste précisée avec
read only = Yes et en dessous write list = user1, user2, …
Restriction de l'accès au partage à un ou plusieurs utilisateur ou à un groupe :
valid users = user1, user2, @group1101
Pour forcer tous les utilisateurs à être reconnu comme un seul utilisateur du système : force user = nobody
et force group = nogroup.
Comme cela si quelqu'un vient sur le partage, il a les droits de tout autre utilisateur, et ne peut aller à la racine.
Les droits au niveau de samba:
Les droits UNIX surchargent les droits samba, mais samba a besoin qu'on lui spécifie les droits appliqués par défaut sur les fichiers de partages créés.
Droits à la création des fichiers
Par exemple pour lecture, écriture, exécution pour utilisateur et son groupe, et lecture, exécution pour les autres :
create mask = 0775

> Droits (POSIX) à la création des dossiers
Rappel, pour se déplacer dans un répertoire, c'est l'exécution, pour créer, supprimer renommer un fichier d'un répertoire niveau dossier, c'est l'écriture, et la lecture c'est l'ouverture d'un fichier.
Pour lecture, écriture, exécution pour utilisateur seulement:

create mask = 700
  • [printers] et [print$] : partage d'imprimantes
  • [homes] : partage du répertoire personnel des utilisateurs

Variables de substitution du fichier de configuration smb.conf

  • %U : Nom de l'utilisateur
  • %G : Groupe de l'utilisateur
  • %h : Nom du serveur Samba
  • %m : Nom NetBIOS du client Samba
  • %L : Nom NetBIOS du serveur Samba
  • %M : Le nom internet du client
  • %a : Type de la machine cliente
  • %I : IP de la machine cliente
  • %i : IP local de la machine cliente
  • %T : Date et heure courante
  • %D :Nom de domaine
  • %I : IP de la machine cliente

Le caractère % permet de substituer les variables.

Par exemple, si dans [global] de cet exemple on met :

server string serveur %h : samba %v

Il s'affichera “serveur debian-1 : samba la version de samba”.

Références :

Vérifier la syntaxe du fichier de configuration

testparm smb.conf

Ré-initialisation de samba

service restart samba

Ajout d'un compte user dans samba

Ce compte doit correspondre à un compte utilisateur existant du système debian. Il faut en créer pour des raison de sécurité.
La commande suivante se charge d'en créer un dans les données de samba.
Il faut donner un mot de passe pour le compte samba, qui est différent du mot de passe UNIX qui a été demandé quand on a utilisé la commande adduser nouvel-utilisateur.

smbpasswd -a hypathie
  • Pour lister les utilisateurs samba :
smbpasswd -L
  • Pour désactiver un utilisateur :
smbpasswd - d utilisateur
  • Pour supprimer un utilisateur :
smbpasswd - x utilisateur
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
real = son.kerberos.REALM
3)
passwd server = son.kerberos.server
atelier/chantier/samba-partage-reseau.1410515073.txt.gz · Dernière modification: 12/09/2014 11:44 (modification externe)

Pied de page des forums

Propulsé par FluxBB