Samba
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é.
Ici, nous créons un partage nommé "échange" qui donnera accès au répertoire /srv/samba/echange. Ce répertoire devra bien sûr avoir été créé préalablement.
<licode file=/etc/samba/smb.conf> [echange]
browseable=Yes path=/srv/samba/echange writeable=yes create mask=0660 directory mask=0770
</licode>
Il est nécessaire de configurer les droits du répertoire de partage. Les utilisateurs du partage doivent appartenir à un même groupe. Nous utiliserons ici le groupe sambashare qui existe déjà.
# sudo chgrp -R sambashare /srv/samba/echange/ # chmod 2770 /srv/samba/echange/
Ici, tous les utilisateurs du groupe sambashare auront le droit en écriture sur notre répertoire d'échange.
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.
Lancer samba
#sudo service smbd start
Créer et activer les utilisateurs
Les utilisateurs doivent avoir un compte samba en plus de leur compte Linux habituel.
Il faut d'abord créer le compte samba:
#sudo smbpasswd -a <login_utilisateur> New SMB password: <mot_de_passe> Retype new SMB password: <mot_de_passe> Added user <login_utilisateur>.
puis l'activer:
#sudo smbpasswd -e <login_utilisateur> Enabled user <login_utilisateur>.
Pour connaître la liste des utilisateurs créés, taper:
#sudo pdbedit -w -L
Commandes de vérification
Commandes Linux
Chercher une machine samba sur l’adresse 127.0.0.1:
#nmblookup ORDI-PASSAGE __SAMBA__
Lister les partages :
#smbtree
Se connecter à un partage avec l’utilisateur user :
# smbclient -U <login_utilisateur> //ORDI-PASSAGE/echange
La commande smbmount monte les partages :
#smbmount //ORDI-PASSAGE/echange /mnt/partage –o ip=<ip_du_serveur_samba>, username=<login_utilisateur>
Commandes Windows
#nbtstat –A <adresse_ip> 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.
Synchronisation des mots de passe Unix / Samba
Depuis la version 4.4 de samba, le code de libpam-smbpass qui n'était plus maintenu a été retiré.
A priori, on doit pouvoir faire la même chose avec winbind.
Liens utiles
- https://doc.ubuntu-fr.org/samba
- https://doc.ubuntu-fr.org/system-config-samba
- https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
- https://www.samba.org/samba/docs/
Copyright
© 2019 Christophe de Livois
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. |