{{tag>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 : [[http://forum.ubuntu-fr.org/viewtopic.php?id=115786|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=,password=,user 0 0
Pour cela il faut installer le package **smbfs** :
apt-get install smbfs
====Les options====
Pour y avoir acces en **rw** (**r**ead/**w**rite), il faut configurer les droits sur la machine hôte. Puis, on peut utiliser les options **fmask** (**f**ile 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** (**d**irectory mask) afin de ne cibler que les **d**irectories (répertoires) :
//dude/share /mnt/share_dude smbfs username=,password=,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=
password=
=====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