Aujourd’hui, il est courant de voir sur un même réseau des machines tournant sous GNU/Linux et d’autres sous MS Windows. Le problème du partage des fichiers arrive aussitôt avec de tels réseaux hétérogènes. Samba permet de résoudre efficacement et simplement cette problèmatique.
Cet article présente comment mettre en place un partage de fichiers via Samba. Néanmoins il n’aborde pas en détails toutes les possibilités de ce dernier qui sont très puissantes.
samba
. Utilisateur de la Debian, la commande est la suivante :
#apt-get install samba
Une fois installé, la Debian va proposer la configuration de samba
. Un premier écran s’affiche pour donner des informations sur ce programme. Il faut passer cet écran en validant OK.
Ensuite le programme de configuration demande s’il faut lancer samba
comme un démon ou via inetd. Il faut choisir démons.
Un écran d’information sur les mots de passe et le cryptage s’affiche, il suffit de le passer en validant OK. Un nouvel écran propose alors de créer le fichier /etc/samba/smbpasswd
. Il faut répondre No.
Samba est maintenant installé, configuré et lancé. [1]
L’étape suivante consiste à configurer le partage des fichiers. Lors de l’installation, le fichier /etc/samba/smb.conf
a été créé. Ce fichier permet de configurer le partage. Dans le cadre de cet article, la configuration se fera via un fichier vierge. Il faut donc renommer ce fichier :
#mv /etc/samba/smb.conf /etc/samba/smb.conf.old
Puis il faut créer un nouveau fichier /etc/samba/smb.conf
contenant ces informations :
[global]
server string = Vampire
workgroup = Workgroup
netbios name = Vampire
public = yes
encrypt passwords = true
[projects]
path = /home/zero/projects
read only = no
writeable = yes
valid users = zero
comment = all_my_projects
Ce fichier se décompose en deux parties :
La section générale appelée : global
Et la section de partage qui dans l’exemple s’appelle : projects
La première section permet de paramétrer le partage de votre machine avec Samba :
server string : prend pour valeur le nom qui identifiera votre machine.
workgroup : donne le nom du groupe dans lequel se trouvera votre machine. La notion de groupe permet de regrouper et/ou faire un classement des machines sur un réseau.
netbois name : contient le nom Netbios sous lequel sera identifiée votre machine.
public : indique si le partage est publique (yes) ou privé (no).
encrypt passwords : indique s’il faut utiliser le cryptage des mots de passe.
La seconde section permet quant à elle de définir le partage d’un répertoire sur Samba :
[projects] : désigne le nom sous lequel sera accessible ce partage.
path : indique le répertoire à partager.
read only : indique si le partage est accessible seulement en lecture seule.
writeable : indique si les utilisateurs peuvent écrire sur le partage.
valid users : donne la liste des utilisateurs qui auront accès à ce partage.
comments : permet d’afficher une description du partage. Cela permet aux utilisateurs d’avoir des indications sur le contenu d’un partage quand ils explorent l’ensemble des partages de fichiers.
Pour que Samba prenne en compte cette nouvelle configuration, il est nécessaire de redémarrer Samba avec la commande :
#/etc/init.d/samba restart
Votre partage est prêt. Mais il faut encore ajouter l’utilisateur zero dans la liste des utilisateurs Samba. En effet dans le fichier de configuration, la ligne valid users = zero authorise uniquement l’utilisateur zero à se connecter au partage projects. Pour cela il faut utiliser la commande :
#smbpasswd -a zero
Le programme smbpassword demande alors le mot de passe de l’utilisateur. Il faut saisir un mot de passe propre à Samba. Et cette fois, le partage de fichiers est enfin prêt !!
Il est nécessaire de vérifier que le partage fonctionne bien. L’article ne traite pas de l’accès au partage de fichiers sous un système MS Windows, mais arrivé à cette étape il est très facile de vérifier que le partage est bien accessible sur ce type de système. En revanche la suite de l’article explique comment accéder au partage de fichiers à partir de votre Debian.
#apt-get install smbclient
Ensuite il suffit de tester l’accès au partage avec la commande suivante :
$smbclient //127.0.0.1/projects -U zero
Le mot de passe de l’utilisateur zero est demandé. Il faut le saisir. Si tout c’est correctement déroulé, un prompt doit s’afficher. Il est alors possible de lancer la commande ls pour lister tous les fichiers qui se trouvent dans le partage projects.
Il faut taper la commande quit pour se déconnecter et quitter le client Samba.
Dans un premier temps il faut installer le paquet smbfs avec cette merveilleuse commande :
#apt-get install smbfs
Ensuite il faut créer le répertoire dans lequel va être monté le partage Samba :
$mkdir ~/partages/shared_projects
Enfin, il ne reste plus qu’à monter le partage avec la commande :
$smbmount //127.0.0.1/projects ~/partages/shared_projects -o username=zero
Le programme demande alors de saisir le mot de passe de l’utilisateur zero. Une fois le mot de passe saisi, le partage de fichiers est accessible !! Il est possible de vérifier le bon déroulement de la manipulation avec la commande :
$ls ~/partages/shared_projects
Cette commande doit afficher le contenu du partage de fichiers nommé projects.
Pour démonter le partage de fichiers Samba, il faut utiliser la commande :
$smbumount ~/partages/shared_projects
Cette méthode se révèle beaucoup plus simple pour explorer les partages. Par contre la connexion au partage peut être assez fastidieuse. Puisqu’il faut se reconnecter à chaque redémarrage de la machine, passer en root si votre utilisateur n’appartient pas au groupe disk, ... Une dernière amélioration est possible afin de simplifier l’accès aux partages de fichiers.
Pour cela, il faut utiliser le fichier de configuration du montage de système de fichier : /etc/fstab. Il faut ajouter la ligne suivante :
//127.0.0.1/projects /home/zero/partages/shared_projects smbfs password=top_secret,username=zero 0 0
[2]
Maintenant le partage sera monté à chaque démarrage de la machine. Si la machine distante qui partage les fichiers n’est pas accessible au moment du démarrage de la machine, les fichiers partagés ne sont bien évidemment pas accessibles. Néanmoins si la machine distante devient accessible il sera possible de faire un :
#mount ~/partages/shared_projects
Et les fichiers partagés seront alors accessibles.
[1] Il est possible dès à présent de lancer, arrêter ou redémarrer samba
via les commandes suivantes :
#/etc/init.d/samba start
#/etc/init.d/samba stop
#/etc/init.d/samba restart
[2]
Il faut remplacer top_secret par le mot de passe de l’utilisateur zero sur Samba.
Il faut noter que le mot de passe est écrit en clair dans le fichier /etc/fstab
. :-/
Cette ligne ne doit pas contenir de retour à la ligne. Elle doit tenir sur une seule ligne.
Il faut remplacer le 1000 par les UID et GID correspondant.
Date | Nom | Message |
Un tout grand merci pour cet article qui m’a bien aidé avec mon Ubuntu Serv ;)
Bonjour, pour monter un partage depuis une livebox-2 avec 2 sticks usb directement depuis le fstab :
//192.168.1.1/DisquesUSB/Flash_Disk /fixe/essai smbfs uid=celtiore,gid=celtiore 0 0
ou
//192.168.1.1/DisquesUSB/USB_DRIVE /fixe/essai2 smbfs uid=1000,gid=1000 0 0
Merci à vous pour cet excellent site
Bonjour, Je suis débutant sur Linux et j’avoue que votre article m’a bien aidé ! Un grand merci à vous !
Je te souhaite la bienvenue dans le monde merveilleux de Linux !
Ça fait plaisir de voir qu’un article, écrit il y a plus de 5 ans, continue d’aider des personnes. :-)
Bonjour,
Je dois vous dire un grand merci. En effet sur ma Linux Mint 6 XFCE, il n’y a pas d’explorateur reseau. J’ai bien essayé deux trois programmes mais aucun ne fonctionnait. At grace a votre methode, tout marche ! Mille mercis !
Gaël
Bonjour,
Je ne connaissais pas la distribution Linux Mint ! ;-) En tout cas, content de voir que cet article vous a bien aidé.
bonjour merci pour cet article, je viens de m’en servir sur LMDE. pour parcourir le reseau avec XFCE il est possible d’installer nautilus et de le lancer avec l’argument —no-desktop computer :/// (nautilus —no-desktop) on peut ainsi parcourir le reseau sans alourdir xfce par l’utilisation normale de nautilus il y a aussi gigolo qui fonctionne pour le reseau normalement
bonjour, Je suis nouvel utilisateur linux. J’ai installé ubuntu hardy. Je suis en réseau avec un xp home. J’ai suivi le tutoriel, en faisant la modification dans fstab. Le partage est monté au démarrage, j’ai accès aux fichiers, je peux modifier un fichier existant, créer un nouveau fichier mais dès que j’essaie de modifier ce nouveau fichier, il m’indique que je n’ai pas les droits. Je sèche complètement...
Bonjour,
D’où crées-tu tes fichiers ? Est-ce depuis XP Home ou depuis Ubuntu Hardy ? Et d’où les modifies-tu ?
Il faudrait regarder les droits des répertoires où sont créés tes fichiers ainsi que les droits de ces derniers...
salut la démarche fonctione et mes postes sous windows voient bien mon serveur debian. en revanche g un petit soucis :
je n’arrive pas à placer des fichiers dans mon repertoire partagé que ce soit du poste sous debian ou d’un autre station ,on m’affiche que je n’est pas les droits.comment faire ca doit pas etre grand chose
merci
Bonjour,
moi aussi j’ai le même probléme est ce que vous aviez trouvez pourquoi ?
Merci
Bonjour,
Avez-vous laissé les paramètres suivants pour votre partage ?
read only = no
writeable = yes
De plus, avez-vous vérifié les droits du répertoire partagé sur votre machine Debian ? Car il faut que l’utilisateur samba ait les droits en écriture au niveau du système Debian.
J’espère que vos problèmes seront résolus grace à cette dernière remarque.
Bjr lorsque je fai smbpasswd -a zero il me dit que l’utilisateur existe déja dans la base et il ne veut pas réinitialisé mon mot de passe. comment faire ?
Tape juste smbpasswd zero pour changer le mdp. Le -a est pour ajouter ;-)
Merci pour l’article simple et pratique. Au redémarrage, mon partage n’est réservé que pour root après modification du fstab. Comment puis-je permettre à tous les utilisateurs de profiter du partage dès le démarrage ?
indiqué dans le texte, changer l’uid de l’utilisateur dans fstab.
Ou si tu fais un smbmount à la main, il te dit :
smbmnt must be installed suid root for direct user mounts (1000,1000) smbmnt failed : 1
tu peux forcer smbmnt à se lancer en root par : sudo chmod ug+s /usr/bin/smbmnt
(attention, faille de sécurité)
Bonjour.
smbpassword -a zero n’a pas fonctionné chez moi, j’ai du taper :
smbpasswd -a zero
...et ça a fonctionné... je ne sais pas si le problème pourrait survenir chez d’autres personnes mais je le dis quand même car je connais un contact qui a eu le même inconvénient.
/# smbpasswd zero New SMB password : Retype new SMB password :
Failed to find entry for user zero.
Failed to modify password entry for user zero
d’où vient le problème svp ?
La commande « #smbpasswd -a zero » permet d’ajouter l’utilisateur zero dans la liste des utilisateurs de Samba.
Par contre, il faut savoir que le dit utilisateur zero doit exister également au niveau du système d’exploitation.
Donc il est possible, soit d’utiliser la commande smbpasswd avec un utilisateur existant, soit de créer avant un utilisateur spécifique pour Samba (par exemple zero).
J’avoue que ce point n’est pas très explicite au niveau de l’article. Je vais essayer d’améliorer le paragraphe concerné.
bonjour,
c’est un bon tuto, je serais curieux de savoir combien il y a d’utilisateur ’zero’ dans samba, lol
merci
bill