Outils personnels
Vous êtes ici : Accueil Linux Installer un serveur de fichiers (et de messagerie) Installer les clients Samba

Installer les clients Samba

Par Freecrazy - Dernière modification 30/12/2010 09:49

Notre serveur de fichiers est démarré. Dans cet article nous allons voir comment cela se passe côté client Windows et Linux.

Le serveur de fichiers est configuré comme expliqué dans l'article précédent, il s'agit maintenant de voir si tout se passe bien côté client, c.a.d un poste connecté au réseau que dessert votre serveur.

1 - Poste client Samba sous Windows

1.2 - Poste client sous Windows 7 (W7)

L'édition est la Familiale Premium donc cela marche aussi avec les autres éditions (mais je n'ai pas testé).

Cela va aller vite. En effet il suffit d'ouvrir une session avec un nom d'utilisateur et un mot de passe que vous avez préalablement indiqué à Samba (cf. étape précédente), pour que vos partages apparaissent dans l'explorateur de fichiers dans la partie réseau comme ceci :

Le temps pour W7 de scanner le réseau (barre verte de progression)

Poste_client_Samba_Scan_réseau_W7

(Vous l'aurez deviné IO est l'ordinateur sur lequel tourne W7.)

Et voici les partages réseau :

Poste_client_Samba_Partages_réseau_W7

Comme vous pouvez le constater seuls les partages réseau accessibles à l'utilisateur Freecrazy apparaissent : son espace personnel (freecrazy), et ses espaces partagés (Famille, Archives et Média)
Vous noterez qu'on ne voit pas l'espace personnel des autres utilisateurs (avec une autre configuration cela pourrait être possible et on y accèderait avec le login/mot de passe de l'utilisateur propriétaire)
Plutôt simple, non ?

1.2 - Poste client sous Windows XP

L'édition est la Home Edition donc cela marche aussi avec les autres éditions (testé avec XP Pro).

Cela est presque aussi rapide et simple qu'avec W7. En effet il suffit d'ouvrir une session avec un nom d'utilisateur et un mot de passe que vous avez préalablement indiqué à Samba (cf. étape précédente), pour que vos partages apparaissent dans vos favoris réseau. Voici comment y accéder.

Les favoris réseau n'apparaissent pas forcément immédiatement (surtout si vous ne les avez jamais utilisés). Pour les voir il suffit de cliquer sur Poste de Travail qui est toujours dans le Menu Windows (Démarrer)

Client_Samba_XP_Poste_de_travail

Ça y est, vous l'avez repéré, un clic dessus et vous avez :

Client_Samba_XP_Favoris_Réseau

Là aussi, comme W7, il faut un petit temps (de l'ordre de quelques secondes) avant que les partages apparaissent. Les seules différences avec W7 sont :

  • on n'a pas de barre de progression,
  • et le 'server string' (ici Serveur Samba %v) apparaît.

Cela reste quand même simple, non ?

2 - Poste client Samba sous Linux

Malgré le fait que le protocole soit issu du monde Windows, Linux fait encore très fort en rendant les choses aussi simples (enfin presque) sur un poste Linux que sous un poste Windows. Par contre vu la multiplicité des Linux, les choses peuvent différées d'une distribution à une autre. Je vous montre 2 situations qui sont aux 2 extrémités de l'échelle de la difficulté.

2.1 - Client Samba graphique sous Mandriva - KDE

J'ai pris une Mandriva car je l'ai sous la main, mais je pense que ce qui suit doit être facilement transposable sur toute distribution avec un bureau de type KDE ou Gnome. Vous avez ouvert une session sous le nom d'un utilisateur inscrit au service Samba de votre serveur.

Un clic sur votre Dossier personnel (représenté par une petite maison sous Mandriva) vous donne cette fenêtre après s'être positionnée sur Réseau :

Poste client Samba sous KDE : Réseau

Après quelques clics pour le choix du Workgroup - Famille -, du serveur - Xena (Serveur Samba 3.4.3) - nous arrivons à cette fenêtre :

Poste client Samba sous KDE : Les partages

Vous remarquez de suite que tous les répertoires partagés s'affichent sauf ... celui de l'utilisateur connecté ! Et lorsque vous cliquez sur un des dossiers, vous obtenez :

Poste client Samba sous KDE : Boîte de Dialogue

Hé oui, sous Linux username et password ne sont pas transmis automatiquement (question de sécurité ?). Mais une fois les champs renseignés, l'accès est donné avec les bons droits et reste valable le temps de la session. Il est à noter que si vous ouvrez la session sous un utilisateur non enregistré au service Samba, vous pouvez tout de même vous connecter aux espaces partagés, du moment que vous connaissez un username/password inscrit au service.

Cela doit expliquer aussi la non apparition de notre 'Home' 'Dossier personnel'.

Sous Gnome, c'est exactement la même chose comme on peut le voir avec ce "SnapShot" pris sous une CentOS :

Poste client Samba sous Gnome

Bon, me direz-vous, OK cela marche, mais à moitié puisque je n'ai pas accès à mon espace personnel sur le serveur.

Hé bien si ! Votre identification est valable pour tous les espaces auxquels vous avez droit y/c votre espace personnel. Pour s'en convaincre, réactualisez votre Affichage (F5 sous Mandriva, ou via Affichage > {Recharger, Actualiser}) et vous obtiendrez ceci :

Poste client Samba sous KDE : Le Home

Alors ? guère plus compliqué que sous Windows, non ? Il y a même une identification supplémentaire, ce qui accroît la sécurité (si on avait mis un mot de passe différent pour l'accès au service Samba bien sûr)

Ajout du 12 février 2010 :

A l'usage je me suis rendu compte que le client Samba sous Mandriva ne fonctionnait pas comme je le pensais. Lorsque l'on passe par l'explorateur de fichiers, puis recherche réseau et partages Samba comme expliqué précédemment, nous avons bien accès à nos partages en lecture et en création de fichiers, mais lorsqu'il s'agit de modifier le contenu d'un fichier (avec Open Office par exemple) cela ne marche pas. Et le plus sournois c'est qu'on a l'impression que tout notre travail a été correctement enregistré.
En fait, j'avais oublié que nous sommes sous Linux, et sous Linux, lorsqu'on veut intervenir sur des espaces disques il nous faut les monter. J'ai donc essayé via l'interface graphique CCM (Centre de Contrôle Mandriva), malheureusement le montage CIFS échoue sans autre explication. J'ai donc cherché une autre solution plus "manuelle". La solution a été longue à trouver et pour voir les pièges à éviter référez-vous à la page "Comment monter automatiquement ses partages SAMBA - CIFS ?"
En raccourci et simplifié :

  • création des points de montage par ex: ~/Bureau/Archives
  • dans ~.bash_profile on ajoute les montages :
    /bin/mount.cifs //<IP_serveur>/Archives /home/freecrazy/Bureau/Archives \
    -o iocharset="utf8",uid=freecrazy,rw,credentials=/home/freecrazy/<là où vous avez mis votre fichier credentials>
    
  • dans ~.bash_logout on ajoute les démontages :
    /bin/umount.cifs /home/freecrazy/Bureau/Archives
    

Et à chaque mise en route de session (j'ai bien dit de session, pas de l'ordinateur), vous retrouvez vos partages réseau montés et accessibles/modifiables par toutes vos applications.

Nota : Comme pour Windows, il faudra attendre quelques secondes le temps que les montages se fassent.

2.2 - Client Samba en ligne de commande sous Gentoo - Fluxbox

Là aussi j'ai pris Gentoo car j'ai un micro équipé de cette distribution. Mais si Gentoo offre également les bureaux KDE ou Gnome, ce n'est pas ce que j'ai. Compte tenu de la puissance de mon micro, j'ai une interface graphique minimaliste : Fluxbox. Dans ce cadre je n'ai même pas cherché à utiliser une interface graphique. Ici tout se fait manuellement.

J'ai créé 2 scripts : un pour le montage de mes espaces Samba, l'autre pour ... le démontage. Ensuite je les lance automatiquement au lancement de fluxbox (pour le besoin de cet article je l'ai même rendu générique afin qu'il soit utilisable par plusieurs utilisateurs sur une même machine ce qui n'est pas le cas de mon micro qui est mono utilisateur).

Le script de montage est la répétition des 4 commandes de type :

smbmount //<add IP du serveur>/Archives /home/freecrazy/Serveur_Archives/ \
-o uid=freecrazy,gid=famille,rw,credentials=/home/freecrazy/.smb_credentials

qu'il me faudrait lancer en ligne de commande. Pour que le script soit multi utilisateurs, il faut passer le nom d'utilisateur, ici freecrazy, en paramètre comme ceci :

#monscript freecrazy

la récupération du paramètre se fait alors avec ${1}. Le script devient alors

#!/bin/bash
smbmount //<add IP du serveur>/Archives /home/${1}/Serveur_Archives/ \
-o uid=${1},gid=famille,rw,credentials=/home/${1}/.smb_credentials
smbmount //<add IP du serveur>/Famille /home/${1}/Serveur_Famille/ \
-o uid=${1},gid=famille,rw,credentials=/home/${1}/.smb_credentials
smbmount //<add IP du serveur>/Média /home/${1}/Serveur_Média/ \
-o uid=${1},gid=famille,rw,credentials=/home/${1}/.smb_credentials
smbmount //<add IP du serveur>/${1} /home/${1}/Serveur_${1}/ \
-o uid=${1},gid=famille,rw,credentials=/home/${1}/.smb_credentials

Quelques remarques :

  • ce script est à placer où vous voulez, mais pour ma part je l'ai mis logiquement sous /usr/local/bin/
  • vous lui donnez le nom que vous voulez, moi j'ai fait preuve d'une très grande imagination, je l'ai appelé "mon_smbmount"
  • n'oubliez pas, c'est un script, donc rendez le exécutable (vous vous souvenez comment faire ?, non ! #chmod 700 mon_smbmount) 
  • les points de montage Serveur_<...> sont à créer ( toujours ce trou de mémoire ? en tant qu'utilisateur $mkdir Serveur_<...>). Nota : on peut compliquer le script afin qu'il vérifie l'existence des points de montage et qu'il les crée s'ils sont absents. Mais je laisse cela à votre sagacité, car ce n'est pas un article sur la programmation shell.
  • le credentials que j'ai appelé .smb_credentials est un fichier à créer également, bien sûr avec droits minimum (600 voire 400 après y avoir écrit le nécessaire bien sûr) et uid=gid=freecrazy. Dans ce credentials vous mettrez 2 lignes :
    username=<nom utilisateur, ici freecrazy>
    password=<le mot de passe>
    
  • la commande smbmount est obsolète et doit être remplacée par 'mount.cifs' ou 'mount -t cifs' ... et c'est maintenant que je le dis !! Ben oui, car en fait smbmount s'avère plus permissive que mount.cifs, par exemple :
    - uid et gid doivent être ceux de l'utilisateur (cela paraît évident mais pas tant que cela, je pensais fut un temps que l'uid, gid étaient ceux de l'utilisateur ayant accès au service donc uid=freecrazy,gid=famille, hé bien non !)
    - les caractères accentués passent bien avec smbmount (par exemple Média) mais pas du tout avec mount.cifs.
    - dans le credentials, smbmount accepte un espace avant et après le '=' mais pas mount.cifs
    - et surtout les droits se gèrent "tout seul" avec smbmount, ce qui est loin d'être le cas avec mount.cifs
    Donc en attendant que je règle tout cela, et notamment le dernier point, je laisse ma Gentoo avec un montage en smb (A noter que les autres distributions Mandriva, CentOS fonctionnent, elles, avec le protocole CIFS. Mais si elles fonctionnent correctement avec l'explorateur de réseau, elles connaissent aussi des problèmes avec les caractères accentués et les montages. Donc il va bien falloir que je regarde cela de plus près)

Le script de 'démontage' suit la même logique de construction, sauf que chaque ligne ressemble à :

smbumount /home/${1}/Serveur_Archives

En version cifs, vous remplacez smbumount par umount.cifs.

Voilà si vous lancez à la main ce script avec un :

$sudo /usr/local/bin/my_smbmount $USER

$USER est la variable système qui contient le nom de l'utilisateur courant, vous obtenez dans l'explorateur de fichiers Rox :

Poste client Samba sous Fluxbox

Les ronds verts indiquent que mes espaces de stockage sont bien montés.

Voilà je n'expliquerai pas ici en détail comment lancer ces 2 scripts automatiquement, cela sera vu dans le dossier Gentoo. Mais en 2 mots, il existe un fichier qui est lu au lancement de la session graphique qui s'appelle ~/.fluxbox/startmenu, il suffit d'y ajouter la ligne suivante :

sudo my_smbmount $USER &

Bon, je reconnais que là c'est devenu un poil plus compliqué, mais l'environnement minimaliste y est pour beaucoup !

Ajout du 12 février 2010 :

J'ai résolu mes difficultés liées à mount.cifs, et je vous invite à aller voir comment avec l'article Comment monter automatiquement ses partages SAMBA - CIFS ?

Actions sur le document