« Samba » : différence entre les versions

De wikilivois
Aller à la navigationAller à la recherche
Aucun résumé des modifications
Ligne 4 : Ligne 4 :




=Configuration du serveur samba=
=Configurer le serveur samba=
Il faut installer le paquetage samba et disposer des droits d'administration.
Il faut installer le paquetage samba et disposer des droits d'administration.


Ligne 66 : Ligne 66 :
==Vérifier la validité de la configuration==
==Vérifier la validité de la configuration==


La commande <tt>'''testparm'''</tt> permet de vérifier la validité et le contenu de la configuration de <tt>smb.conf</tt>.
La commande <tt>'''testparm'''</tt> permet de vérifier la validité et le contenu de la configuration de <tt>smb.conf</tt>.


=Créer les utilisateurs=
=Créer les utilisateurs=

Version du 29 septembre 2019 à 15:36


Cette page explique la configuration samba pour partager des fichiers sur un réseau local.


Configurer le serveur samba

Il faut installer le paquetage samba et disposer des droits d'administration.

La configuration du serveur Samba s’écrit dans le fichier /etc/samba/smb.conf.

Le fichier se décompose en une section « global » définissant les paramètres généraux suivie de sections pour chaque partage.

La section [global]

Pour éviter quelques problèmes, retenez que :

  • La casse doit impérativement être respectée en ce qui concerne le nom de domaine. Par exemple "WORKGROUP" ne sera pas considéré de la même manière que "workgroup".
  • Le nom de la machine ne doit pas dépasser 16 caractères pour être visible quand on parcourt le réseau, le nom de la machine (serveur) qui partage un dossier ne doit pas dépasser 15 caractères (et ne peut contenir que des lettres non accentuées, chiffres et signes -).

Sinon elle sera accessible uniquement par son adresse IP (et donc invisible autrement).

<licode file=/etc/samba/smb.conf> [global]

 netbios name = ordi-passage 
 workgroup = WORKGROUP
 log file=/var/log/samba/log.%m
 log level=1

</licode>

L’exemple de configuration ci-dessus définit :

  • le nom netbios du serveur
  • le nom du domaine ou groupe de travail - le plus simple est de laisser WORKGROUP, le domaine proposé par défaut par Windows.
  • la destination du fichier de logs (ici un fichier par machine d’où le %m)
  • le niveau de debuggage désiré dans les logs (de 0 à 10)

Le manuel (man smb.conf) donne un description précise de chaque paramètre. On y trouve aussi la définition des variables utilisées par smb.conf :

  • %m nom netbios de la machine qui se connecte
  • %L nom netbios du serveur
  • %u nom de l’utilisateur du partage
  • %U nom de session de l’utilisateur sur le serveur
  • %v numéro de version Samba

La section [homes]

Le partage [homes] correspond au partage propre à chaque utilisateur qui correspond à son répertoire personnel définit dans /etc/password.

<licode file=/etc/samba/smb.conf> [homes]

 guest ok=no
 read only=no

</licode> Le partage n’autorise pas l’accès aux invités et peut être utilisé en écriture.

Les partages « classiques »

Il s'agit de donner accès à un partage déterminé.

<licode file=/etc/samba/smb.conf> [echange]

 browseable=Yes
 path=/srv/samba/echange
 writeable=yes
 create mask=0660
 directory mask=0770

</licode>


Vérifier la validité de la configuration

La commande testparm permet de vérifier la validité et le contenu de la configuration de smb.conf.

Créer les utilisateurs

Le fichier de mot de passe

Le plus simple pour samba est d'utiliser la base d'authentification - utilisateur et machine - TDB (trivial database). L'utilisation de cette base est recommandée pour les systèmes qui n'ont pas besoin d'authentification LDAP, avec moins de 250 utilisateurs.

<licode file=/etc/samba/smb.conf>

passdb backend = tdbsam

</licode>

Pour connaître la liste des utilisateurs, taper:

#pdbedit -w -L


Commandes de vérification

Commandes Linux

Chercher une machine samba sur l’adresse 127.0.0.1:

#nmblookup –U 127.0.0.1 __SAMBA__ 

Rechercher sur tout le réseau local :

#nmblookup –B 192.168.10.255 __SAMBA__ 

Lister les partages :

#smbclient  –L \\serveur 

Se connecter à un partage avec l’utilisateur user :

#smbclient \\serveur\partage –U user 

La commande smbmount monte les partages :

#smbmount //serveur/partage /mnt/partage –o ip=192.168.10.1, username=user

smbmount

smbmount //ordi-passage/echange /mnt/smb -o ip=192.168.111.1,username=chris
smbmount //asteroide/Bureau /home/chris/smb/
smbclient //asteroide/Bureau -U chris -I 192.168.111.1

Avec smbfs dans fstab: <licode file=/etc/fstab> //home/chris /mnt/home_chris smbfs user,auto,rw,uid=chris,credentials=.home.cre 0 0 //home/data /mnt/data smbfs user,exec,gid=users,credentials=.home.cre,codepage=cp850,iocharset=iso8859-15,debug=4 0 0 </licode> ou avec cifs : <licode file=/etc/fstab> //home/usbdisk /mnt/usbdisk cifs user,exec,gid=users,credentials=.home.cre,iocharset=iso8859-15 0 0 </licode>

Attention cifs utilise le dns pour retrouver home

<licode file=.home.cre> username=xxx password=xxx </licode>

Commandes Windows

#nbtstat –A 192.168.10.12 donne les noms netbios enregistrés par une adresse IP

#net view donne les serveurs de fichiers sur le réseau

#net view \\serveur donne les partages disponibles sur une machine

#net use h: \\serveur\partage /user:chris connecte un partage au lecteur réseau H:

#net use * /d déconnecte tous les partages.

Création des utilisateurs

Nous supposons qu'il n'y a pas de contrôleur de domaine (PDC).

Il faut créer un compte Unix et un compte samba par utilisateur :

#adduser utilisateur
#smbpasswd –a utilisateur
L’option –a permet de rajouter le mot da passe utilisateur au fichier smbpasswd.

Il ne faut pas oublier de créer le « home » de l’utilisateur avec les bons droits :

#mkdir /home/utilisateur
#chown utilisateur.public /home/utilisateur -R
L’utilisateur correspond à son « login » et le groupe public, correspond au groupe de partage.
#ls -l
drwxr-xr-x    3 cdelivois InterAct     4096 Dec 19 18:57 cdelivois



Paramètres avancés

<licode file=/etc/samba/smb.conf> hide unreadable = Yes cache les fichiers qui ne sont pas accessibles veto files =/*.exe/*.dll/*.com/*.vbs/*.{*}/ hide files = /fichieracacher.txt/*.test/

veto oplock files = /*.mdb/*.MDB/ </licode>

Op lock veut dire « Opportunist locking » : le client peut télécharger un fichier et le mettre en cache sur son disque dur pendant qu’il le modifie. Si un deuxième client veut accéder au fichier, le premier client est averti et met à jour la version sur le serveur. Cela améliore les performances mais l’oplock ne doit pas être utilisé lors de l’utilisation à plusieurs d’une base de données. Les oplocks peuvent être désactivés par les options oplocks et level2oplocks.

Autoriser la commande NET TIME \\SERVERNAME /SET /YES qui synchronise l’horloge client sur l’horloge du serveur. <licode>time server = Yes</licode>

Optimiser les performances du serveur avec socket options. <licode>socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192</licode>

Problèmes rencontrés

Le fichier docs/textdocs/DIAGNOSIS.TXT livré avec les sources de Samba permet de diagnostiquer les problèmes les plus courants.

Liens utiles


Copyright

© 2019 Christophe de Livois

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.