7.4. Description du fichier /etc/smb.conf

C'est le fichier texte qui vous permet de configurer le serveur Samba.

Il est composé de différentes sections dont les titres sont placés entre crochets [ ]. Toute ligne commençant par ; ou par # est ignorée lors de l'exécution de Samba. On utilise souvent cette fonctionnalité pour ajouter des commentaires d'explication sur les différentes sections. De cette façon vous vous y retrouverez plus facilement plus tard, lors de la relecture.

Lors de l'installation du paquetage, un fichier /etc/smb.conf a été copié sur votre ordinateur. Nous allons utiliser ce fichier comme point de départ.

Il existe trois sections particulières : [global] (généralités), [printers] (imprimantes), et [homes] (répertoires personnels).

7.4.1. Section [global]

Ici, sont introduits les paramètres qui s'appliquent au serveur dans sa totalité ou qui seront les paramètres par défaut pour certaines sections.
[global]
netbios name =          Zeus
netbios aliases =       creation
# sans ces deux entrées, le premier composant du 
# nom DNS est utilisé à la place.

workgroup =             DESIGN
# Samba ne peut être membre que d'un seul groupe 
# de travail à la fois

server string =         Serveur de fichiers [%v]
# ceci indique le nom est la version à afficher

deadtime =              15              
# durée maximale d'inactivité

auto services =         jean
# ce service, bien qu'affiché dans la liste
# d'exploration, n'est pas disponible avant la
# connexion de jean au serveur

security = user
Ce dernier paramètre peut prendre les valeurs share (partagé), user, (utilisateur), server, (serveur), ou domain (domaine).

  1. Mode share (ou partagé) : Le client envoie un mot de passe lors de la demande de connexion sans qu'un nom d'utilisateur soit requis. Ce mode est le mode par défaut de sécurité des fichiers ou de l'impression de Windows 95. Il peut être modifié dans la section Réseau du Panneau de configuration, dans Contrôle d'accès.

  2. Mode user (utilisateur) : Il est préférable de choisir ce mode de sécurité. Il faut alors fournir un nom d'utilisateur valide et le nom de passe associé.

  3. Mode server (serveur) : Ce mode est une variante du mode user. Le serveur Samba envoie une demande d'ouverture de session au serveur de mots de passe.
    password server = NT_passe 
    # c'est le nom du serveur NT de mots de passe. 
    # On peut indiquer plusieurs noms de serveurs.

  4. Mode domain (domaine) : Ce mode est presque le même que le précédent.

Dans ces trois derniers modes, l'utilisateur doit être « créé  » sur le serveur Samba.
hosts allow = jean.design.org 192.168.2.
Ici, tous les utilisateurs de la machine john.design.org et depuis 192.168.2. seront refusés lors d'une tentative de connexion.
hosts deny = 192.168.2
.5
Cette ligne empêche toute connection depuis la machine 192.168.2.5. Ele a le même effet que l'option EXCEPT dans la ligne hosts allow.

guest account = pcguest 
# si vous désirez utiliser un compte d'invité, 
# à ajouter dans /etc/passwd

 

 

7.4.2. Définir un partage

Créez d'abord cette entrée avec la commande suivante : mkdir /home/commun et établissez les permissions avec les commandes chmod et chown. Par exemple, chmod 0777 donne tous les droits à ce dossier du côté Unix. Il faudrait, de plus, que Samba l'autorise également.
[share]
  comment = partage accessible par tous
  path = /home/commun
  browsable = yes
  writable = yes
  create mask = 0750 
# signifie que l'utilisateur a les droits 
# rwx, le groupe r-x et les autres r--

  directory mask = 0750 
# même signification

  mangled names = yes 
# conversion des noms en format DOS/Windows, 
# c'est à dire 8 caractères pour le nom et
# 3 pour l'extension.

  preserve case = no 
# pour ne pas prendre en compte la casse.
Un autre exemple de partage

Assurez-vous de charger d'abord le module ppa avec la commande modprobe ppa.o.
[zip]
comment = montage/démontage automatique de disquettes zip
  browseable = yes
  path = /mnt/zip
  root preexec = /bin/mount /dev/sda4 /mnt/zip
  root postexec = /bin/unmount /mnt/zip

7.4.3. Section [homes]

Cette section permet à chaque utilisateur d'accéder à son répertoire HOME de la machine Linux depuis un PC sous Windows. Il s'agit d'un type de partage spécial.

[homes]
  comment = Répertoires personnels
  browseable = no
  writable = yes
  path = /export/homes/%U
  valid users = %S

7.4.4. Section [printers]

Il s'agit d'un autre type de partage particulier.
[printers]
   comment = Imprimantes disponibles
   path = /var/spool/samba
   load printers = yes # charge toutes les imprimantes disponibles
   browseable = no
   printable = yes
   public = no
   writable = no
   create mode = 0700
Vous pouvez aussi imprimer de Linux sur une imprimante connectée sur un PC fonctionnant sous Windows. Utilisez pour cela printtool et configurez l'imprimante. Ceci va créer une entrée dans le fichier /etc/printcap. Il faut l'avoir partagée au préalable sous Windows.

Il existe de très nombreux paramètres, pour plus d'informations, tapez man smb.conf.

Exemple de fichier smb.conf

[global]
  workgroup = MonGroupeDeTravail
  server string = (Samba %v)
  #server string = Samba Server
  browseable = yes
  printing = bsd
  printcap name = /etc/printcap
  load printers = yes
  log file = /var/log/samba/log.%m
  max log size = 100
  lock directory = /var/lock/samba
  locking = no
  strict locking = no
  share modes = yes
  security = user
  null passwords = yes
  socket options = TCP_NODELAY

  # Fait en sorte que le serveur Samba devienne le serveur 
  #   principal du domaine
  #os level = 33
  #domain master = yes

  # Facilite la reconnaissance des noms de fichiers longs
  preserve case = no
  short preserve case = no
  character set = iso8859-1

[homes]
  comment = Répertoires personnels 
  preexec = /bin/sh -c 'echo /usr/bin/smbclient -M %m -I %I'&
  browseable = yes
  readonfiltered= no
  writable = yes
  create mode = 0750
  public = yes

["public"]
  comment = "Public"
  path = /public/
  browseable = yes
  hide dot files = yes
  readonfiltered= no
  public = yes
  pritable = yes
  #create mode = 0775
  printable = no

["printers"]
  comment = All Printers
  #path = /var/spool/samba
  path = /var/spool/lpd/lp
  browseable = yes
  # public = yes # pour permettre à l'utilisateur 'invité' d'imprimer
  guest ok = yes
  writable = yes
  printable = yes