Ceci est une ancienne révision du document !
Le fichier smb.conf
La configuration de Samba n'est pas une mince affaire, c'est pourquoi cette page est assez longue, mais soyez tranquille, seule une partie s'appliquera à votre besoin, continuez de lire attentivement.
Cette page n'est pas exhaustive et ne permettra pas à tout le monde d'y trouver son bonheur, toutefois vous y trouverez ce dont vous avez besoin pour une configuration simple. Des configurations nécessaires à un aboutissement suffisant y sont proposées. Comme c'est le cas pour bon nombre de logiciels (serveurs, en l'occurrence) des configurations différentes sont possibles, en fonction des habitudes…
⇒ Ce ne sont que des propositions.
- Un certain nombre de notions sont rapidement expliquées ici, cette page est destinée à documenter le fichier de configuration de Samba, pas toutes les notions à avoir pour tout comprendre en détail. Faites appel à votre curiosité pour en savoir plus (si vous estimez en avoir besoin).
- Dans cette page, le terme "serveur" sera souvent employé, c'est parce que je1) considère Samba comme un service auquel se connectent des clients, il s'agit donc d'un serveur (au même titre que apache, par exemple), même si Samba tourne sur un PC domestique avec une version non-server de n'importe quelle distribution (GNU/)Linux.
Introduction
Le fichier /etc/samba/smb.conf permet de configurer Samba. Ce fichier est composé de sections dont le nom est entre crochets2) :
[global]
: contient les paramètres généraux et les paramètres par défaut des différents partages,[printers]
et[print$]
sont spécifiques au partage d'imprimantes,[homes]
est spécifique au partage du répertoire personnel d'un utilisateur (son répertoire $HOME) il apparaîtra dans la liste des partages avec le nom d'utilisateur du client (s'il est identifié),[le_nom_d'un_partage]
pour chaque partage
Éditez le fichier /etc/samba/smb.conf :
Dans ce fichier de configuration par défaut il y a beaucoup de commentaires, afin de ne pas les perdre et d'avoir un fichier claire, il est conseillé de copier ce fichier sous un autre nom et de partir de zéro3).
Généralités
Le fichier /etc/samba/smb.conf est construit en différentes sections dont la première est généralement : [global].
Une section commence par une ligne contenant un mot entre crochets et fini lorsque la section suivante commence .
Toute ligne commençant par un # est un commentaire. Toute ligne commençant par un ; est aussi considérée comme un commentaire mais sert pour les paramètres ignorés.
Dans une section, les valeurs sont affectées aux paramètres de cette manière :
paramètre = valeur
Dans certains cas, il est possible d'affecter une liste de valeurs à un même paramètre, la syntaxe à utiliser est alors :
paramètre = valeur1,valeur2,valeur3
ou séparés par des espaces
paramètre = valeur1 valeur2 valeur3
Il est coutumier d'indenter4) les paramètres afin de les distinguer des sections et des commentaires.
Une ligne se terminant par le caractère \
se prolonge sur la ligne suivante comme le veut la mode Unix.
Exemple illustratif :
# Un commentaire très important puisqu'il est là… # Début de la section [section] # Un paramètre comme ceci paramètre unaire = valeur # ou comme cela liste de paramètres = toi,moi,eux # et tous ceux qui le veulent… Ah oui, on peut commenter en fin de ligne ;-) # Celui-ci n'est pas pris en compte ; paramètre invalidé = essai infructueux
La liste des paramètres se trouve dans la page de man (ou manuel) de smb.conf :
man smb.conf
Pour chaque paramètre, une lettre est mise entre parenthèses :
- (G) pour les paramètres de la section
[global]
- (S) pour les paramètres spécifiques aux partages (shares en anglais). Ces paramètres peuvent être définis dans la section
[global]
et seront valables pour tous les partages, cela évitera de les refaire figurer dans chaque partage. On dira que les paramètres sont hérités.
Paramètres généraux de [global]
Identification du PC sur le réseau
Groupe de travail ou Domaine
workgroup = CHEZ_MOI
Le groupe de travail (ou nom de domaine pour les PC dans un domaine) et le nom du "réseau" dans lequel les PC "sont"5). Bon, on ne commence pas par la notion la plus facile…
Il ne faut pas créer un groupe de travail, il existe dès lors qu'un PC se défini comme faisant partie de ce groupe.
En gros, pour ranger un peu les PC sur un même réseau, on les place dans des groupes appelés "groupe de travail". Si vous avez moins de 50 PC, vous pouvez les mettre dans le même groupe, ça ne dérangera personne!
Nom NetBios
netbios name = MON_ORDI_A_MOI
C'est le nom du PC sur le réseau.
Description
server string = serveur %h (Samba %v, Ubuntu)
C'est la description de votre PC que vous voulez donner.
Type de sécurité
Voir le chapitre dédié à ce point particulier.
Réseau
Interface
Dans certains cas6) on peut vouloir restreindre l'accès aux partages Samba à une partie des interfaces Ethernet disponibles sur le serveur ; limiter l'accès aux membres du réseau filaire et interdire l'accès à ceux qui sont sur le réseau WiFi par exemple. Il faut savoir que ce n'est pas ce qui est fait par défaut, puisque par défaut, Samba est accessible sur toutes les interfaces réseau, donc si ce fonctionnement vous convient, aucun besoin de préciser quoi que ce soit.
# On souhaite n'autoriser l'accès que via certaines interfaces réseau bind interfaces only = Yes # Liste des interfaces réseau en question interfaces = 127.0.0.1 eth0:0 192.168.1.20/24
Configuration des sockets
Un paramètre qui permet d'augmenter les performances réseau est socket options
. Ce paramètre qui ne prendra qu'une ligne peut vous changer la vie ! Exemple :
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
Paramètres liés à la résolution de nom
WINS
WINS est un service de résolution de nom, comparable au DNS.
Sa configuration peut être de 3 types :
- La plus part du temps : Aucune.
Sur des réseaux simples (sans sous réseaux) WINS n'est pas important. C'est d'ailleurs la configuration par défaut, c'est à dire celle qui est utilisée si rien n'est précisé.
- Client WINS
Le réseau dans lequel se trouve le serveur Samba comporte un serveur WINS, il faut donc le signifier à Samba afin qu'il puisse en tenir compte.
# Si le serveur WINS a l'adresse 192.168.1.20 wins server = 192.168.1.20
- Serveur WINS
Le serveur WINS de votre réseau est votre serveur Samba.
# Activation de la fonction de serveur WINS wins support = Yes # Un paramètre historique dont d'anciennes versions de Windows ont besoin wins proxy = Yes # Si VOTRE serveur a l'adresse 192.168.1.20 wins server = 192.168.1.20 # S'il fallait en plus passer par un serveur DNS ;dns proxy = Yes
Local Master
Pour les détails de fonctionnement voir cette page.
Afin de stabiliser le local master browser sur un réseau, il peut être intéressant de faire en sorte que Samba remplisse ce rôle, d'autant plus si Samba est contrôleur de domaine.
Par défaut, cette valeur est à Yes
. On peut cependant le rappeler afin de faciliter la lecture et figer la paramètre os level
à une valeur supérieure à 64 (et strictement inférieure à 255), afin de garantir la victoire de l'élection du local master browser.
# Samba participe à l'élection… local master = Yes # … et la gagnera ! os level = 65
Si toutefois on ne souhaite pas activer cette fonctionnalité, on peut préciser :
# Le serveur Samba ne participera même pas à l'élection du local master browser local master = No
Exemple de section [global]
Voici un exemple7) d'une section [global] telle qu'elle pourrait être pour une configuration sans authentification :
[global] server string = %h server (Samba, Ubuntu) security = SHARE guest account = nobody syslog = 0 log file = /var/log/samba/log.%m max log size = 100 dns proxy = No usershare allow guests = Yes panic action = /usr/share/samba/panic-action %d hide files = /lost+found/
Profitons en pour parler des paramètres encore inconnus. Il suffit de dire que des notions d'anglais aident bien à la compréhension de leur rôle.
Cas particulier pour hide files
, les noms de fichiers à cacher sont entre /
, exemple si on veut cacher les répertoires lost+found
, les corbeilles et les fichiers *.bak
:
hide files = /lost+found/.Trash*/*.bak/
Paramètres généraux des partages
Répertoire partagé
Le chemin du répertoire partagé se renseigne de cette manière :
path = /data/Documents
Description
Il est possible de renseigner une description de partage :
comment = Tous les documents utiles
Masques de création
AIDE MEMOIRE : create/directory/security mask force create/directory/security mode
Accès aux données
AIDE MEMOIRE : read only etc.
Sécurité
Toute la configuration de Samba tourne autour de la politique de sécurité ; il s'agit du paramètre security
.
On vous aura prévenu
Ce paramètre peut avoir les valeurs suivantes :
- SHARE : Pas de sécurité, les partages sont tous accessibles à tout le monde. Les partages peuvent toute fois être en lecture seule.
- DOMAIN : Une sécurité basée sur une identification par login et mot de passe géré par un contrôleur de domaine.
- SERVER : Une sécurité basée sur une identification par login et mot de passe géré par un autre serveur sur le réseau.
- ADS : Une sécurité basée sur Active Directory.
Vous l'avez compris, pour une utilisation "à la maison", on choisira l'un des deux premiers cas.
security = SHARE
security = USER
security = DOMAIN
!! preferred master = yes