Partage de fichiers avec samba [Tutoriel extrait de http://ernest.cheska.net/]
Samba permet de partager des fichiers dans un réseau hétérogène, par exemple entre des machines GNU/Linux et Microsoft Windows. Je préfère être clair dès maintenant: la puissance de samba (dont la version 3.0 est sortie depuis peu au moment de la rédaction de ce tutoriel) est réelle et des livres entiers lui sont consacrés. Ce tutoriel est le plus minimaliste possible, il va permettre de partager et d'accéder à un répertoire depuis une machine distante. Les imprimantes, l'optimisation, les répertoires personnels, et l'intégration dans un grand réseau ne seront absolument pas abordés. Reportez vous aux liens utiles à la fin de ce document pour plus d'informations. Ce tutoriel a été rédigé et testé sur deux distributions: une Debian Woody et une Mandrake.
Partage de fichiers avec samba
Samba permet de partager des fichiers dans un réseau hétérogène, par exemple entre des machines GNU/Linux et Microsoft Windows. Je préfère être clair dès maintenant: la puissance de samba (dont la version 3.0 est sortie depuis peu au moment de la rédaction de ce tutoriel) est réelle et des livres entiers lui sont consacrés. Ce tutoriel est le plus minimaliste possible, il va permettre de partager et d'accéder à un répertoire depuis une machine distante. Les imprimantes, l'optimisation, les répertoires personnels, et l'intégration dans un grand réseau ne seront absolument pas abordés. Reportez vous aux liens utiles à la fin de ce document pour plus d'informations. Ce tutoriel a été rédigé et testé sur deux distributions: une Debian Woody et une Mandrake.
1. Sommaire
Partage depuis GNU/Linux
Accès aux partages depuis GNU/Linux
Liens utiles
2. Partage depuis GNU/Linux
On commence par installer le package de samba. Sur Debian ce sera:
# apt-get install samba
Chez moi cela a installé les packages additionnels suivants:
samba-common
libcupsys2
Et sur Mandrake:
# urpmi samba
Note à propos de la Mandrake: A l'inverse de la Debian, tous les outils nécessaires sont installés à cette étape, c'est pourquoi vous ne trouverez plus d'installation de packages pour Mandrake dans ce tutoriel.
Note à propos de Debian: A l'installation sur Debian, apt demande si nous souhaitons créer le fichier de configuration à travers l'assistant debconf: dans le cadre de ce tutoriel nous répondons "no". Il demande ensuite si nous désirons lancer samba via inetd ou si il doit tourner en tant que démon, nous optons pour "daemons". Enfin il demande si nous souhaitons la création du fichier /etc/smbpasswd, nous répondons "no". A la fin de l'installation, apt nous dit que les démons nmbd et smbd sont lancés: pour le moment ils ne partagent rien.
Maintenant que samba est installé, pour lancer, couper et relancer samba, on utilise les commandes suivantes (en root):
Sur Mandrake:
#/etc/init.d/smb start
#/etc/init.d/smb stop
#/etc/init.d/smb restart
Sur Debian:
#/etc/init.d/samba start
#/etc/init.d/samba stop
#/etc/init.d/samba restart
Voyons maintenant comment configurer le partage. Comme nous allons mettre en place une configuration très basique, nous n'allons pas utiliser le fichier de configuration de samba par défaut, un poil trop détaillé (il faudra pourtant bien y passer si vous souhaitez monter des partages avancés, ce tutoriel dans ce cas n'est pas vraiment fait pour vous).
# mv /etc/samba/smb.conf /etc/samba/smb.conf.OLD
Nous éditons ensuite notre fichier vierge (vi /etc/samba/smb.conf par exemple).
Pour commencer nous allons mettre dedans les informations générales de la section [global]
[global]
server string = Kyo
workgroup = Home
netbios name = Kyo
public = yes
encrypt passwords = true
On explique rapidement: le fichier de configuration de samba est divisé en rubriques dont le nom est entre crochets. Ainsi la section [global] permet d'indiquer les informations générales concernant le serveur de partage.
server string
il indique le nom de la machine. C'est ce nom qui apparaît si vous explorez le réseau via le voisinage réseau de Microsoft par exemple.
workgroup
Le groupe de travail est un groupe virtuel permettant de classer les machines sur le réseau. Concrètement il permet de diviser le LAN en sous-groupes: à priori peu utile dans un petit LAN remplissez le tout de même et veillez à mettre toutes vos machines dans le même.
netbios name, public = yes, et encrypt passwords = true
Si vous souhaitez connaître l'utilité de ces directives, consultez la documentation de samba, sinon mettez ce qui est indiqué dans l'exemple pour le moment.
Voilà pour la configuration générale, attaquons maintenant la configuration d'un répertoire partagé en continuant à remplir notre fichier.
Pour comprendre voici le détail de ce que nous voulons faire: nous avons sur notre machine Kyo un répertoire /home/kanou/ogg/musique qui contient des fichiers musicaux que nous souhaitons pouvoir écouter sur toutes les machines du LAN.
Et voici ce que cela va donner dans notre smb.conf:
[musique]
path = /home/kanou/ogg/musique
read only = no
writeable = yes
valid users = kanou
comment = musique
Voila le fichier de configuration est terminé, relancez maintenant samba avec un /etc/init.d/samba restart. Mais il faut encore ajouter l'utilisateur "kanou" aux utilisateurs de samba. En effet, comme nous avons indiqué la directive "valid users = kanou", seul l'utilisateur "kanou" pourra se connecter. Pour cela on utilise la commande suivante:
# smbpasswd -a kanou
On fournit alors le mot de passe de kanou.
Pour vérifier que tout fonctionne nous allons le tester en local: pour cela nous installons le package smbclient sur Debian (il est déjà installé sur Mandrake):
# apt-get install smbclient
Et nous testons avec la commande:
# smbclient //127.0.0.1/musique -U kanou
Si tout se passe bien, nous avons maintenant un prompt. Tapez "ls" et voici vos jolis partages o/
Tapez maintenant "quit" pour sortir de là. Vous pouvez tester depuis les autres machines du LAN, vos fichiers sont désormais visibles.
3. Accès aux partages depuis GNU/Linux
Pour accéder de manière commode aux partages d'autres machines, que ce soit des MS Windows ou des partages samba, nous allons monter les répertoires distants. Pour cela nous avons besoin du package smbfs. Sur Mandrake il est déjà installé, sur Debian, un apt-get suffit:
# apt-get install smbfs
Ensuite nous créons un répertoire pour accueillir nos points de montage:
$ mkdir /home/kanou/mnt
Et nous créons enfin le répertoire correspondant à chaque machine distante, dans notre cas il n'y en a qu'une:
$ mkdir /home/kanou/mnt/win2000
Voilà, nous devons maintenant monter le partage de la machine distante dans /home/kanou/mnt/win2000, avec la commande smbmount (en root). Pour cela il vous faut quelques informations: l'adresse de la machine distante (ou son nom netbios), le nom du répertoire partagé, et le login et mot de passe permettant d'accéder à ce partage. Dans notre exemple, kanou souhaite se connecter à une machine Windows à l'ip 192.168.0.100 avec le login kanou et son mot de passe habituel.
# smbmount //192.168.0.100/share /home/kanou/mnt/win2000 -o username=kanou
smbmount réclame le mot de passe, après quoi le partage est monté: on peut le voir avec la simple commande:
$ ls /home/kanou/mnt/win2000
Mais il faut reconnaître que monter le partage après chaque boot n'est pas très pratique, surtout que cela demande de passer une commande en root, nous allons donc simplifier le procédé au maximum en montant automatiquement le partage dans /etc/fstab. Voici la ligne que vous devrez ajouter (sur une seule ligne !):
//192.168.0.100/share /home/kanou/mnt/win2000 smbfs password=toto,username=kanou,uid=1000,gid=1000 0 0
"toto" est a remplacer par le mot de passe sur la machine distante. Remplacer 1000 par le bon UID et GID de l'utilisateur concerné ("man id" en cas de doute)
Voila, désormais, à chaque démarrage, vous devriez avoir le partage monté et accessible. Si jamais la machine distante n'était pas disponible au boot, cela ne sera évidemment pas le cas, mais vous pourrez toujours le monter plus tard avec un mount /home/kanou/mnt/win2000 (en root).
4. Liens utiles
Site officiel de Samba : http://www.samba.org/
Livre consacré à Samba en ligne (O'Reilly) http://www.oreilly.com/catalog/samba/chapter/book/index.html
|