Linux : Partager ses dossiers avec Samba

Par Oxxen le 27-08-2005



Accéder à ses données d'un Linux vers un windows et vice-versa



Sommaire :
I. Installation de Samba
II. Configuration de Samba
III. Creation d’un partage
IV. Accéder à nos partages à partir de Windows
V. Bonus

Le but de ce tutorial est de vous expliquer brièvement et le plus concrètement possible le fonctionnement
de Samba avec un petit bonus en prime à la fin de ce document.

Contexte
Vous venez d'installer une nouvelle machine Linux qui marche très bien (normal me direz vous :p)
et vous disposez d'une machine Windows Xp qui contient vos anciens documents, vidéos, tools
ou autres...

Question: Comment partager les répertoires et fichiers entre votre nouveau système Linux
et votre Windows XP ?

Réponse : Pour cela, vous devez installer Samba sur votre machine Linux.

La configuration :
2 machines :
1 debian avec l?adresse ip 192.168.56.128
1 windows xp avec l?adresse ip 192.168.56.130


I. Installation de Samba

La dernière version de Samba est la version 3.
Suivant votre distribution, les packages sont déjà tout fait et l'installation ne pose aucune difficulté.
Par exemple :
Pour Mandrake : Urpmi samba
Pour Debian : apt-get install samba
Pour gentoo : emerge samba
Pour freebsd : cd /usr/ports/net/samba3 ;make install clean

II. Configuration de Samba

La configuration du serveur Samba repose sur le fichier smb.conf.
La première section [global] définit les paramètres de votre serveur samba avec le nom
du groupe de travail, le nom netbios utilisé par le pc, les administrateurs , les logins interdits etc..
Nous allons voir ensemble quelques paramètres.

Workgroup : Nom du groupe de travail ou du domaine (et oui on peut faire un pdc avec samba )
Server string : la description du serveur dans le voisinage réseau
Netbios name : le nom de la machine linux tel qu?il apparaitra dans le voisinage réseau de votre windows.
( nous renseignerons mynux pour la suite de ce tutorial):
log file = /var/log/samba/log.%m : permet de loguer les connexions au serveur samba avec un fichier
de log pour chaque machine.
printing : permet de définir le logiciel de gestion de vos partages d?imprimantes (actuellement le plus
en vogue est cups)
syslog only = no : permet d'activer ou désactiver syslog pour samba.
security = user
Il existe 2 modes de sécurité: share et user.
Le mode share ne nécessite aucune authentification. En utilisant le paramètre guest only toute nouvelle
connexion utilisera le compte « guest ».
Il est donc fortement conseillé d?utiliser le mode user qui lui nécessite une authentification.
Le mode par défaut utilisé à partir de la version 3 de Samba est le mode user.
encrypt passwords = true : crypter les mots de passe
invalid users = root : impossibilité de se logguer en root.
unix password sync = no : permet de synchroniser les mots de passe samba avec votre serveur linux
( situés dans /etc/passwd)
hosts allow et hosts deny permettent de définir les hôtes ou le réseau que vous voulez autoriser ou non
à se connecter à votre serveur samba.
Par exemple, pour notre cas, on pourrait rajouter :
hosts allow = 127.0.0.1 192.168.56.0/24
hosts deny = 0.0.0.0/0

Le paramètre printing est intéressant pour les imprimantes, je développerai cette section un peu plus tard.

III. Création d'un partage

Par défaut le home de chaque utilisateur est partagé mais n?ait pas accessible en écriture.
Pour copier à partir de votre windows xp les données directement dans votre home directory linux, il vous suffit
de donner le droit en écriture en changeant la ligne writable :
writable = yes

Pour créer un nouveau partage, vous devez renseigner le nom du partage, les droits d?accès et le chemin.
Par exemple, si je souhaite partager le répertoire /var/tools et le rendre accessible en lecture et écriture
uniquement pour l?utilisateur elio voici la syntaxe utilisée :

[tools]
comment = Tools EliO
browseable = yes
writable = yes
path = /var/tools
valid users = elio

Le paramètre browseable permet de voir le partage directement à partir de votre voisinage réseau de votre Windows xp
Ensuite il faut créer l?utilisateur elio à l?aide de la commande smbpasswd
smbpasswd ?a nomutilisateur
Par exemple pour l?utilisateur elio :
smbpasswd ?a elio
Ensuite relancer samba pour prendre en compte les modifications effectuées à l?aide de la commande :
/etc/init.d/samba restart

IV. Accéder à nos partages à partir de l'ordinateur windows

Afin d'accéder aux partages crées précédemment, vous pouvez procéder comme tout autre partage
entre deux windows comme ci dessous:
\\nom de votre serveur


Une demande d'authentification vous sera demandée ( normal si vous utilisez le mode user).
Dans notre cas , nous rentrons les paramètres de l'utilisateur crée (elio)



Nous voyons correctement nos deux répertoires partagés.



Si vous avez correctement configuré votre workgroup, vous pouvez également directement par le voisinage réseau accéder à votre serveur samba et donc aux fichiers partagés Sourire




Vous pouvez maintenant sans problème transférer vos données à partir de votre ordinateur windows vers l'ordinateur linux.
Mais il serait également intéressant de récupérer à partir de votre linux les documents partagés du windows.

Nous allons tout d'abord définir un partage "tools" sur notre windows.





Une fois ce partage crée, il faut installer sur votre débian le package smbfs.
apt-get install smbfs

Ensuite vous allez monter dans un répertoire votre partage windows.
Pour cela vous pouvez crée un répertoire windows dans /mnt par exemple:
mkdir /mnt/windows

Puis ensuite, pour le monter il faut utiliser la syntaxe suivante:
mount -t smbfs \\\\l'ip de l'ordinateur windows\\nom du partage le point de montage -o username=le nom de votre utilisateur windows

Par exemple dans notre cas:
mount -t smbfs \\\\192.168.56.130\\tools /mnt/windows -o username=elio
ou
mount //192.168.56.130/tools /mnt/windows/ -o username=elio

Généralement vous n'utiliserez qu'une seule méthode soit vous partager vos répertoire windows et accéder à partir de votre linux ou l'inverse.
Mais pour ce tutorial, j'ai décidé de vous présenter les deux manières Sourire.

VI. Outils supplémentaires
Il existe des outils pour vous faciliter la tâche d?administration comme Webmin et Swat.
Pour plus d'infos sur le module samba de webmin :
http://www.webmin.com/download/modules/samba.wbm.gz
http://www.webmin.com/standard.html
Exemple interface de Swat:
http://linuxbook.orbdesigns.com/ch27/images/btlb2702.jpg

Personnellement je vous conseille d'utiliser le schell pour configurer Samba car vous apprendrez plus facilement les différentes options (pas si nombreuses finalement) et vous n'aurez pas des services supplémentaires qui tournent sur votre machine.

V. Bonus
Pour vous démontrez et rendre encore plus concret ce tutorial j'ai réalisé une petite vidéo sous Debian de l'installation et de la configuration d'un serveur samba opérationnel en 3 minutes.
En effet, comme nous l?avons vu par défaut le home directory des utilisateurs sont partagés donc il suffit de les rendre accessible en écriture et vous pourrez déjà copier ou récupérer tous les répertoires et fichiers dans votre home.
Puis j'ai configuré un répertoire partagé nommé « tools » pour vous montrer la rapidité et la simplicité de configuration d?un partage.
Durée de la vidéo : 2 min 30 Taille: 4.45 Mo
Télécharger la vidéo de démonstration maintenant

Ce tutorial sera prochainement mis à jour (dès que j?aurai le temps) avec sûrement la gestion des imprimantes partagées avec cups etc?
Pour toute question, vous pouvez me mp ou poster dans la section Linux sur le forum de Futurezone. En fonction des questions je corrigerais et ferait évoluer ce tutorial suivant vos besoins Sourire
Merci à tous ceux qui font vivre ce forum et plus particulièrement aux habitués du chan irc (4N9e, Deimos, DDelec24 )
A+
EliO