Table of Contents

CIFS SMB réseau

Samba

Installation

(sous Debian par exemple)

apt-get install samba samba-common smbclient smbfs swat samba-doc

Normalement le démon samba devrait se lancer automatiquement au démarrage.

Swat

La configuration de Samba peut se faire aussi en utilisant Swat, un outil de configuration de Samba par interface web. Ce dernier sera lancé par inetd, pour cela, vérifiez que /etc/services contient bien la ligne

swat    901/tcp    #swat

et que /etc/inetd.conf contienne bien

swat stream tcp nowait.400 root /usr/sbin/swat swat

L'interface swat est accessible sur le port 901 de la machine ; on y accède avec un navigateur en saisissant l'adresse http://nom_de_la_machine:901 ; pour l'authentification, il faut utiliser le compte root.

Si besoin, ne pas oublier de relancer inetd :

/etc/rc.d/init.d/inetd restart

Gestion des utilisateurs

Créer un utilisateur

Samba utilise les utilisateurs du système, avec des mots de passe différents. Il est recommandé de créer un utilisateur spécial avec peu de droit (pas de shell valide par exemple), smbuser par exemple, appartenant à un groupe spécial, smbusers par exemple :

groupadd smbusers
useradd -g smbusers -s /bin/false smbuser

.. puis lui attribuer un mot de passe (uniquement pour samba) :

smbpasswd -a smbuser

NB : depuis Samba 4, la commande a changé : comme on a passdb backend = tdbsam elle devient :

pdbedit -a smbuser
 
# pour convertir une base smbpasswd en tdbsam :
pdbedit -i smbpasswd -e tdbsam

Lister les utilisateurs

source : forum.ubuntu-fr.org

Tout d'abord vérifier que votre smb.conf contient bien le backend tdbsam :

grep -ni backend /etc/samba/smb.conf
 110:   passdb backend = tdbsam

Puis passer cette ligne de commande (elle liste les comptes utilisateurs qui ont un mot de passe samba configuré) :

pdbedit -Lw | egrep -v ":X{32}:X{32}:" | awk -F: '{print $1}'
 smbuser
 toto

Configuration

Le fichier de configuration est /etc/samba/smb.conf ; par exemple pour créer un partage de /sav :

[sav]
    comment = Partition de sauvegarde
    path = /sav
    read only = no
    writable = yes
    guest ok = yes
    public = yes

Pour tester la configuration :

testparm -s

Montage automatique dans la fstab

On peut monter des répertoires samba partagés en les montant comme des répertoires locaux dans /etc/fstab :

//dude/share      /mnt/share_dude smbfs   username=<user>,password=<pwd>,user 0 0

Pour cela il faut installer le package smbfs :

apt-get install smbfs

Les options

Pour y avoir acces en rw (read/write), il faut configurer les droits sur la machine hôte. Puis, on peut utiliser les options fmask (file mask ; équivalent de umask pour smbfs) afin d'ajuster les permissions des fichiers de la partition montée. On peut affiner les droits en utilisant dmask (directory mask) afin de ne cibler que les directories (répertoires) :

//dude/share      /mnt/share_dude smbfs   username=<user>,password=<pwd>,fmask=775 0 0

Les options de type uid et gid sont similaires aux autres montages que l'on peut faire dans la fstab.

MAJ 24/12/2007: les options dmask et fmask semblent tomber en désuétude. Elle sont remplacées respectivement par dir_mode et file_mode, à définir en octal (précédée d'un “0”).

Credentials

Pour ne pas laisser le login/pass en clair dans la fstab, on peut utiliser un fichier credentials :

//dude/share      /mnt/share_dude smbfs    credentials=/root/smbpass.cre,fmask=775 0 0

Le nom et l'emplacement du fichier smbpass.cre est arbitraire, mais il faut veiller à ce qu'il ne soit lisible que par le root.

vi /root/smbpass.cre
 username=<user>
 password=<pwd>

Divers

Compatibilité Vista

Il faut veiller à avoir la ligne suivante pour faire marcher Samba avec un Windows Vista, Microsoft ayant changer le protocole SMB dans son dernier OS :

map acl inherit = yes

cela dit je l'utilise actuellement sans avoir fait cette modif et sans problème

smbstatus

Renvoie le status du serveur Samba avec notamment la liste des utilisateurs connectés, les ressources accédées, etc…

smbstatus
 Unknown parameter encountered: "read-only"
 Ignoring unknown parameter "read-only"
 
 Samba version 3.0.28a
 PID     Username      Group         Machine
 -------------------------------------------------------------------
 17290   toto          titi          thor         (192.168.0.2)
 17340   titi          smbusers      thor         (192.168.0.3)
 
 Service      pid     machine       Connected at
 -------------------------------------------------------
 data         17290   thor          Tue Apr 15 22:21:10 2008
 data         17340   thor          Tue Apr 15 22:24:42 2008
 
 No locked files