Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


smb.conf : le fichier de configuration de Samba

Le fichier /etc/samba/smb.conf est le seul fichier de configuration de Samba. Ce fichier est composé de sections (dont le nom est entre crochets) :

? [global]
: paramètres généraux et les paramètres par défaut des différents partages
? [printers] et [print$]
: spécifiques au partage d'imprimantes,
? [homes]
: 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

Les commentaires débutent par un point-virgule (;) ou un dièse (#). Toutes lignes commençant par un de ces symboles ne seront pas interprétées par Samba.

Première section : [global] = paramètres généraux

? workgroup = nomdugroupe
: nom du groupe de travail
? guest ok = yes/no
: (synonyme : public)
? server string = nomduserveur
: identification de la machine (habituellement quelque chose comme //Serveur Samba//)
? hosts allow = adresses IP
: variable très importante pour la sécurité du réseau : définit les adresses IP autorisées à contacter le serveur Samba. Exemple : **192.168.0.** **192.168.5.** **127.** autorise les machines ayant une adresse IP du réseau local **192.168.0.xxx** et **192.168.5.xxx**. **127.** permet d'autoriser les connexions sur l'adresse loopback à des fins de test.
? printcap name = /etc/printcap
? load printers = yes
: Ces deux variables permettent de charger automatiquement les imprimantes du système au lieu de les configurer individuellement.
? printing = système
: système de gestion d'impression à utiliser. Les choix possibles sont **bsd**, **sysv**, **plp**, **lprng**, **aix**, **hpux** ou **qnx**.
? guest account = login
: nom d'un utilisateur invité. Il est impératif de l'ajouter au système. Sinon, l'utilisateur **nobody** est utilisé par défaut.
? log file = /chemin/log.%m
: un fichier journal par machine plutôt qu'un fichier global. Facilite la lecture des journaux.
? Max log size = taille
: taille maximum des fichiers journaux en Ko.
? security = type
: gestion de la sécurité :
  * par utilisateur (user)
  * ou par serveur (server).
? password server = nomdeserveur
: avec la gestion de sécurité par le serveur : précise un nom de serveur.
? password level =
? user level =
: taille minimum pour le mot de passe et le nom d'utilisateur.
? encrypt passwords = yes
: Active le cryptage du mot de passe. Ne pas oublier le **s** dans le nom de variable, souvent source d'erreurs.
? smb passwd file = /etc/smbpasswd
: fichier de mots de passe cryptés.
? unix password sync = yes
? passwd program = /usr/bin/passwd %u
? passwd chat = * New * UNIX * password * %n\n * ReType * new * UNIX * password * %n\n * passwd: * all * authentification * tokens * updated * successfully *
: Ces variables autorisent une synchronisation des mots de passe SMB avec ceux de la machine Unix
: Attention, c'est inutile si on veut seulement autoriser le changement de mot de passe SMB. Un mauvais choix ici peut s'avérer catastrophique pour la politique de sécurisation.
? username map = fichier
: spécifie un fichier d'utilisateurs différents de celui du système.
? include = /chemin/smb.conf %m
: intègre des paramètres supplémentaires en fonction du nom NetBIOS du demandeur. %m représente le nom NetBIOS.
? socket options = TCP_NODELAY
: Améliore souvent les performances réseau. D'autres astuces dans le fichier speed.txt livré avec la documentation de Samba
? interfaces = adresses IP
: adresses IP des interfaces réseau en cas d'utilisation de plusieurs périphériques.
? local master = no
: exclut le serveur Samba pour qu'il ne devienne pas un serveur membre (voir LMF 4)
? os level = chiffre
: niveau de compétence du serveur dans l'élection sur serveur primaire. inutile si local master = no.
? domain master = yes
: le serveur Samba peut être serveur de domaine et collecter des informations pour tenir à jour sa propre table de sous-réseau. A ne pas activer si le réseau possède déjà une machine NT qui fait ce travail.
? preferred master = yes
: Déclenche une élection de serveurs primaires au démarrage -> augmente les chances du serveur Samba d'être élu.
? domain controller = nomdeserveur
: nom d'une machine NT qui joue le rôle de serveur de domaine primaire.
? name resolve order = wins lmhosts bcast
: ordre dans lequel se fera la résolution des noms et des adresses IP. Ce paramètre vise à optimiser la vitesse du système.
? wins support = yes
: Active la résolution WINS (Windows Internet Name Serving)
? dns proxy = yes
: Demande à Samba d'utiliser la fonction nslookups pour la résolution des noms NetBIOS.
? preserve case = no
: Désactive ou active la préservation de la casse des caractères.
? default case = lower
: casse par défaut : minuscule (à l'opposé de upper pour majuscule)
? case sensitive = no
: Désactive la gestion de la casse des caractères.

Deuxième section : [homes]

? comment = Home Directories
: commentaire ou très court descriptif.
? browseable = no
: Interdit le parcours du répertoire.
? writable = yes
: Autorise l'écriture dans le répertoire.

Autres :

? guest ok = yes/no
: (synonyme : public)
? force user = yes/no
: (synonyme : public)

Autres sections

Les autres sections déterminent les ressources susceptibles d'être partagées.

Exemple 1

Une ressource disque appelée toto sera déclarée comme suit :

[toto]
comment = essai de partage
path = /home/samba/toto
public = yes
writable = yes
printable = no
write list = @totogrp
  • Emplacement physique sur la machine Unix : /home/samba/toto.
  • Répertoire public non imprimable (ce n'est pas une ressource d'impression).
  • Peut être parcouru et lu par tous les utilisateurs,
  • Permission d'écriture limitée au groupe totogrp.

Exemple 2

Dans le cas d'une imprimante [priprime] la section sera

[priprime]
comment = Imprimante de test
valid users = nicolas
path = /home/nicolas
printer = nicolas_printer
public = no
writable = no
printable = yes

Ici, la ressource est imprimable, mais non inscriptible. Cette ressource est réservée à l'utilisateur nicolas et n'est donc pas public. Dernier point, le chemin de la ressource est placé dans le répertoire personnel de l'utilisateur d'où l'intérêt de pouvoir y écrire sans pour autant avoir la permission de le parcourir.

Conclusion

Notre parcours du fichier smb.conf est à présent terminé.

Nous venons de voir les options les plus importantes, mais il en existe bien d'autres. Pour toutes les connaître, tapez man smb.conf. Vous pouvez également lire l'importante documentation fournie avec Samba et habituellement placée dans /usr/doc.

Voir aussi


Basé sur « Samba : le fichier de configuration » par Linux Magazine France Avril 99.