Partager votre répertoire personnel

Gazette Linux n°50 — Février 2000

Arnaud Gomes-do-Vale

Adaptation française 

Frédéric Marchal

Correction du DocBook 

Article paru dans le n°50 de la Gazette Linux de février 2000.

Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières

Introduction
Avertissement
Comment utiliser ce guide
Prérequis
Protocoles
Machine Windows
Fichier de configuration
Mots de passe
Configuration de MS Windows
Sous Linux
UID
NFS côté serveur
NFS côté client
Dernières recommandations

Introduction

Vous changez régulièrement de machine et de système d'exploitation, mais vous avez toujours besoin d'accéder à votre répertoire personnel. Cet article vous montrera comment y arriver, tant sous Linux que sous Microsoft Windows.

Avertissement

Cet article présente des informations que nous avons réunies à force de lire des livres, les HOWTO, les pages de manuel, les forums usenet, et de passer des heures à martyriser nos claviers. Il ne se veut pas une référence exhaustive sur la question, mais il est plutôt destiné aux utilisateurs novices qui cherchent à acquérir un peu plus d'expérience. Les exemples proviennent en droite ligne de nos propres réseaux, donc nous savons qu'ils fonctionnent.

Comment utiliser ce guide

  • Les mots entre crochets indiquent les touches du clavier ([Entrée]) ou les boutons de la souris ([bouton~1]).

  • Les mots entre accolades, comme par exemple {votre nom}, indiquent des données qui doivent être remplacées par les « vraies ».

Prérequis

Pour partager votre répertoire personnel, il faut déjà en avoir un. Assurez-vous donc que vous avez un compte sur votre serveur. Vous devez aussi avoir installé samba et les logiciels serveur et client nfs.

Protocoles

Nous avons tellement vu la question « comment partager un disque Linux avec Windows » dans les forums usenet que cette question ne devrait plus avoir à être posée. Il n'empêche qu'elle l'est encore. Pour partager ses disques, Windows n'utilise pas tcp/ip mais le protocole smb. Donc pour partager une ressource Linux, vous devez utiliser le protocole smb sous Linux. Samba est le logiciel adapté. Linux, au contraire, utilise tcp/ip et nfs pour partager ses ressources. Ces protocoles sont totalement différents, mais peuvent être utilisés en même temps pour partager les mêmes ressources. Il y a de gros problèmes de verrouillage des fichiers si les deux protocoles sont utilisés en même temps pour accéder à la même ressource, mais ça ne devrait pas être gênant pour une utilisation domestique. La sécurité est également problématique, et nous vous recommandons de protéger votre « serveur de /home » au moyen d'un garde-barrière (NdT: firewall) et des tcp wrappers.

Machine Windows

Samba est un ensemble de programmes qui vous permettent de vous faire suivre d'une machine à l'autre par votre répertoire personnel quand vous utilisez le système d'exploitation de Microsoft. Naturellement, samba ne tourne que sur le serveur Linux. Vous n'aurez aucun mal à vous procurer samba : il fait probablement partie de votre distribution. Assurez-vous simplement que vous avez au moins la version 2.05, ou vous aurez toutes sortes de problèmes. Si vous voulez récupérer le code source et le compiler vous-même, allez sur le site de samba.

Une fois samba installé, il vous reste trois étapes avant de pouvoir partager des ressources : éditer le fichier de configuration de samba, mettre en place les mots de passe et configurer Windows pour se connecter à un domaine NT.

Fichier de configuration

Samba lit sa onfiguration dans le fichier smb.conf. Il peut se trouver en /etc/smb.conf ou /usr/local/samba/lib/smb.conf. Il peut faire pas mal de choses, mais nous nous concentrerons sur le partage de votre répertoire personnel depuis votre serveur. Le fichier smb.conf se compose de plusieurs sections, dont les titres sont entre crochets [ ]. La première section à éditer est la section [global], dont voici les principaux paramètres :

[global]
        workgroup = KULAI
        encrypt passwords = Yes
        smb passwd file = /etc/smbpasswd
        password level = 8
        username level = 8
        socket options = TCP_NODELAY
        domain logons = Yes
        domain master = yes
        os level = 65
        preferred master = Yes
        wins proxy = no
        wins support = yes
        hosts allow = 192.168.124. 127.
        logon script = logon.bat

Quelques explications :

workgroup

Le nom du domaine de vos machines windows.

encrypted passwords

Nécessaire si vous utilisez Windows 98. Leur utilisation est décrite ci-dessous.

smb passwd file

Emplacement des mots de passe cryptés.

password level, username level

Le niveau 8 signifie que la casse n'est pas prise en compte dans les noms d'utilisateurs et les mots de passe.

socket options

Cette valeur accélère les connexions sur le réseau

domain logons

C'est le plus important. Voir ci-dessous.

domain master

Pour l'utilisation domestique, il n'y a qu'un serveur maître.

os level

Plus c'est haut, mieux c'est. La valeur 65 convient.

preferred master

Nécessaire pour partager des répertoires.

wins proxy

Nous ne relayons rien.

wins support

Nécessaire pour partager des répertoires.

logon script

Nom du fichier éxécuté par les machines windows lors de la connexion. Pas indispensable, mais ça peut être agréable. Notez qu'il s'agit d'un fichier au format DOS, et pas Unix. Les retours chariots sont obligatoires.

Le rôle de cette section [global] : samba va devenir un serveur de domaine maître, ce qui signifie que votre serveur samba va remplir la fonction de gestionnaire de sessions et stocker les fichiers et les paramètres personnels des utilisateurs. Les utilisateurs de windows vont maintenant se connecter à votre domaine samba, et plus simplement à leur machine. Le répertoire c:\windows\profiles\utilisateur sera copié sur le serveur samba lors de la déconnexion de l'utilisateur, et du serveur sur la machine windows lors de la connexion. Et ça fonctionne quel que soit la machine utilisée, ce qui signifie que vos fichiers dans Mes Documents, votre menu démarrer et vos favoris vous suivront qu'elle que soit la machine que vous utilisez. Par exemple, le contenu de /home/jpollman/profile sur le serveur Linux est :

Application Data/  Favorites/     NetHood/      Start Menu/
Cookies/           History/       Temporary Internet Files/   
Desktop/           My Documents/  Recent/       USER.DAT

Une autre caractéristique intéressante est que vous pouvez accéder à ces mêmes fichiers depuis Linux, vu qu'ils se trouvent dans votre répertoire personnel. Les autres sections du fichier smb.conf qui réclament notre attention :

[homes]
        comment = Home Directories
        read only = No
        browseable = No

L'option browseable=no signifie que seul le répertoire personnel de l'utilisateur apparaîtra dans le voisinage réseau.

[netlogon]
        comment = Network Logon Service
        path = /usr/local/samba/netlogon
        public = no
        writeable = no
        browseable = no

Le paramètre path donne l'emplacement du fichier logon.bat mentionné dans la section [global].

[Profiles]
        path = /home/%U/profile
        guest ok = Yes
        browseable = No

Ici, le paramètre path sert à donner à chaque utilisateur l'accès à ses propres données. %U désigne l'utilisateur.

Après avoir sauvegardé votre smb.conf, vous pouvez le vérifier à l'aide du programme testparm, pour vous assurer qu'il ne contient pas d'erreurs grossières. Si c'est bien le cas, vous pouvez lancer samba :

smbd -D [Entrée]
nmbd -D [Entrée]

Samba comporte de nombreux autres programmes et peut faire beaucoup d'autres choses — lisez le manuel et les pages web. Ici, nous voulons simplement faire fonctionner le domaine, pour que votre répertoire personnel vous suive sur n'importe quelle machine.

Mots de passe

Malheureusement, Samba n'utilise pas les mots de passe Unix. Vous allez donc devoir créer un fichier smbpasswd. Depuis Windows 98, Microsoft utilise des mots de passe cryptés. C'est une bonne chose, mais cela requiert un peu plus de travail pour configurer Samba. Vous pourriez modifier la base de registres de Windows pour le forcer à utiliser des mots de passe en clair, mais puisque Samba sait gérer les mots de passe cryptés, pourquoi ne pas le laisser faire ? Samba est fourni avec un programme permettant de convertir les mots de passe Unix des utilisateurs, mais nous trouvons qu'il donne les droits sur les volumes SMB à beaucoup d'utilisateurs qui ne devraient pas les avoir. Il est assez facile de créer un fichier smbpasswd à la main pour une utilisation personnelle, et c'est ce que nous recommandons. Remarque : pour qu'un utilisateur puisse partager son répertoire personnel, il doit avoir un compte sur le serveur Linux (utiliser adduser). Pour créer un fichier smbpasswd pour un utilisateur de Windows, disons pour l'utilisateur bmote :

smbpasswd -a bmote [Entrée]

Répondez aux questions, puis

smbpasswd -e bmote [Entrée]

pour activer l'utilisateur. Répetez ces étapes pour chaque utilisateur. Redémarrez smbd et nmbd, et vous aurez terminé la configuration du côté Linux.

Configuration de MS Windows

  1. Allez dans Panneau de configuration -> Mots de passe. Dans le panneau supérieur, cliquez sur Profils utilisateur. Sélectionnez la seconde option « Les utilisateurs peuvent personnaliser... » et sélectionnez une ou l'autre des deux options du bas, ou les deux. Cliquez sur OK.

  2. Allez dans Panneau de configuration -> Réseau. Nous supposons que TCP/IP est configuré. Cliquez sur « Client pour les réseaux Microsoft » pour le mettre en valeur, puis cliquez sur Propriétés. Cochez la case Ouvrir la session sur un domaine Windows NT et indiquez le nom de domaine que vous avez déclaré dans smb.conf. Nous vous suggérons de valider l'option Connexion rapide jusqu'à ce que votre configuration soit terminée. Cliquez sur OK. Vous n'avez pas besoin du protocole NetBEUI (en fait, il risque de ralentir votre réseau), mais vous devez sélectionner l'option Activer NetBIOS avec TCP/IP dans les propriétés de TCP/IP (cette option sera sélectionnée par défaut si vous n'avez pas NetBEUI).

  3. Après avoir refermé le Panneau de configuration, vous allez devoir insérer votre CD-ROM d'installation de Windows et, ô surprise, redémarrer la machine.

  4. Au prochain redémarrage de Windows, vous devrez indiquer votre nom d'utilisateur, votre mot de passe et votre domaine.

Sous Linux

Le partage de votre répertoire personnel sous Linux est une grosse amélioration de votre réseau, dans la mesure où tous vos fichiers de configuration — comme vos signets de Netscape, tout votre courrier électronique (en supposant que vous utilisez le même logiciel pour le lire sur toutes les machines), et vos modifications personnelles de votre gestionnaire de fenêtres vous suivront d'une machine à l'autre. Linux, et Unix en général, utilisent pour cela un programme appelé NFS (network file system — système de fichiers en réseau). NFS possède un certain nombre de trous de sécurité, et il est donc fortement recommandé de le mettre en place derrière un garde-barrière bien configuré. Quand vous aurez fini cet article, vous devriez lire attentivement le NFS-HOWTO.

UID

Un des moyens utilisés par NFS pour savoir qui peut accéder à quoi est l'UID — l'identifiant utilisateur. Votre UID est le troisième champ de votre entrée dans le fichier passwd. La mienne ressemble à ça :

jpollman:IxmI/XXxxrg/Y:501:100:JC Pollman:/home/jpollman:/bin/bash

Mon UID est 501. L'UID d'un utilisateur doit être le même sur toutes les machines qui utilisent NFS. Vous pouvez ou bien lui attribuer le même UID dans les fichiers passwd de toutes les machines, ou bien utiliser NIS — ce qui dépasse le cadre de cet article. Si vous changez l'UID d'un utilisateur, vous allez devoir utiliser chown pour lui rendre ses fichiers. C'est assez pénible, mais vous n'avez à le faire qu'une seule fois.

NFS côté serveur

Vous devez faire tourner un certain nombre de programmes, et votre noyau doit être compilé avec certaines options. Voyons ça une chose à la fois.

Votre noyau

Le noyau doit être compilé ave l'option NFS. C'est le cas par défaut sur la plupart des distributions. Si vous devez compiler votre propre noyau, sélectionnez les options suivantes dans la rubrique Network File Systems :

NFS filesystem support
NFS server support

mais pas

Root filesystem on NFS

puis compilez et installez votre noyau comme d'habitude.

portmap

Le programme portmap doit être installé et lancé. Il est généralement installé par défaut. Vérifiez qu'il tourne bien en tapant :

ps ax|grep port [Entrée]

Après l'avoir lancé, vous pouvez vérifier on bon fonctionnement en tapant :

rpcinfo -p [Entrée]

Le programme portmap utilise les fichier /etc/hosts.allow et /etc/hosts.deny, donc si rpcinfo -p échoue alors que le portmapper est lancé, vérifiez le contenu de ces fichiers.

nfsd et mountd

Vous devez aussi avoir installé les programmes nfsd et mountd sur le serveur. Le paquetage contenant ces programmes s'appelle knfsd pour les noyaux 2.2, et nfs-server2.2 pour les noyaux plus anciens.

exports

Le fichier /etc/exports détermine quels répertoires peuvent être montés par les autres machines. Il s'agit simplement d'un fichier texte où chaque ligne indique ce qui peut être monté par qui et avec quelles permissions. Le mien ressemble à ça :

/home *.kulai.org(rw)

Le premier champ de la ligne est le répertoire, ce qui dans notre cas autorise le montage de tous les répertoires personnels. Le second champ indique quelles machines peuvent monter ces répertoires, dans notre cas toutes les machines du réseau kulai.org. Le troisième champ — entre parenthèses — indique les permissions. Pour plus d'informations sur ce fixhier, faites man 5 exports. Après avoir modifié le fichier exports, vous devez relancer nfsd et mountd pour qu'ils le relisent.

Dernière vérification

Après avoir modifé et relancé tout ce qui devait l'être, faites

rpcinfo -p [Entrée]

Vous devriez obtenir quelque chose comme ça (il peut y en avoir plus si vous avez d'autres services en fonctionnement, et les ports de mountd peuv être différents) :

   program no_version protocole  no_port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp    745  mountd
    100005    1   tcp    747  mountd
    100003    2   udp   2049  nfs
    100003    2   tcp   2049  nfs

NFS côté client

Vous devez installer les programmes clients NFS : mount et portmap, en plus d'un noyau supportant NFS. La plupart des distributions sont fournies configurées de façon adéquate. Une fois cela fait, et si votre serveur NFS s'appelle master.kulai.org, tapez ceci en tant que root sur le poste client :

mount -t nfs master.kulai.org:/home /mnt [Entrée]

Si tout se passe bien, vous devriez revenir à l'invite de la ligne de commande. Placez-vous alors dans /mnt et faites un ls pour vérifier que tout est correct. Si, au lieu de monter le système de fichiers, mount renvoie une erreur comme « mount:  master.kulai.org:/home failed, reason given by server: Permission denied », alors votre fichier exports est mal configuré, ou vous avez oublié de relancer nfsd et mountd après l'avoir modifié. Si l'erreur est « mount clntudp_create: RPC:  Program not registered », alors nfsd ou mountd ne tourne pas sur le serveur, ou bien vuos avez le problème décrit plus haut avec les fichiers hosts.allow et hosts.deny.

Pour démonter le système de fichiers, tapez

umount /mnt [Entrée]

Pour automatiser tout ça, ajoutez cette ligne au fichier /etc/fstab du client, en remplaçant master.kulai.org par le nom de votre serveur :

master.kulai.org:/home   /home    nfs  rw  0  0

Une remarque intéressante : quand vous montez /home par NFS depuis une autre machine, le répertoire /home de votre disque dur « disparait » : il est encore là, mais vous ne pouvez plus y accéder tant que votre répertoire NFS est monté.

Maintenant que tout cela fonctionne, je vous suggère de redémarrer le serveur et le client. Beaucoup de gourous de Linux vont courir chercher leur fusil en lisant ceci, mais il y a une raison. Vous venez de faire un certain nombre de changements dans votre configuration. En redémarrant maintenant, vous pouvez vérifier que tout fonctionne parfaitement, et dans le cas contraire, vous vous souvenez encore de ce que vous avez fait. Autrement, dans deux mois, quand vous subirez une coupure de courant et que vous aurez toutes les peines du monde à remettre votre réseau d'aplomb, vous ne serez pas sûr à 100% que NFS fonctionne, et vous allez vous mettre à jouer avec sans vous souvenir de tous les détails.

Dernières recommandations

Les éditions O'Reilly on mis en ligne leur livre Using Samba. Il s'agit d'un excellent document que vous devriez explorer en détail. Il est très bien écrit et à jour.

Voici quelques exemples d'utilisation de Samba.

Vous pouvez configurer un certain nombre de paramètres dans le fichier logon.bat. Rappelz-vous qu'il s'agit d'un fichier DOS ! Le mien ressemble à ceci :

net time \\master /set /yes
net use H: /home
net use N: \\master\Netscape /yes

La première ligne synchronise l'horloge de votre machine sur celle du serveur Samba. Pour que cela fonctionne, vous devez aussi ajouter cette ligne à la section [global] de votre smb.conf :

time server = yes

La deuxième ligne du fichier logon.bat fait apparaître votre répertoire personnel sur le serveur Linux comme lecteur H sous Windows. Cela se fait en plus de la synchronisation automatique du répertoire Profile. Là encore, il faut ajouter une ligne à la section [global] de smb.conf :

logon home = \\master\%U

où master est le nom du serveur Samba.

La dernière ligne de mon logon.bat monte automatiquement mon profil Netscape sur le lecteur N. Lors de la création d'un profil Netscape sous Windows — au moyen du gestionnaire de profils de Netscape — vous pouvez indiquer l'emplacement de vos fichiers utilisateur. En utilisant un lecteur partagé par votre serveur Linux, votre profil Netscape peut vous suivre d'une machine à l'autre si vous utilisez Windows. Vous devrez ajouter une section au fichier smb.conf pour que ça fonctionne. Voilà ce que j'ai dans le mien :

[Netscape]
 comment = Netscape Profiles
 path = /backup/netscape
 read only = no

Si vous voulez vraiment bien faire les choses, créez un lien du fichier bookmarks.html dans votre répertoire personnel sous Linux vers le répertoire partagé par Samba. Dans mon cas, cela ressemble à ça — en une seule ligne :

ln -s /home/jpollman/.netscape/bookmarks.html /backup/netscape/jpollman/bookmark.htm

Maintenant, que j'utilise Netscape sous Linux ou sous Windows, j'utilise les mêmes signets.

Quelques remarques sur les lettres des lecteurs — avant que vous ne soyez trop perdu. Nous utilisons U: pour « utilisateur », mais H: est aussi assez commun et signifie généralement « home ». Utilisez quelque chose de facile à retenir pour les autres volumes partagés : F: pour « famille », N: pour « Netscape », E: ou T: pour « équipe » (NdT: team), P: pour « public », etc. Cela vous facilite les choses quand vous devez l'expliquer aux utilisateurs, et cela leur facilite les choses quand ils doivent le retenir. Ces conventions sont communes dans les environnements Novell.

Remarque : évitez Z: si des machines sous Windows 9x doivent se connecter à votre serveur. Z: est assigné par défaut à NETLOGIIN, et lui assigner quelque chose dans logon.bat va provoquer l'apparition d'une boîte de dialogue — Répondre « oui » pour réassigner la ressource à Z échouera de toute façon. Windows NT n'a pas cette limitation.

Vous pouvez aussi assigner les ports LPT dans logon.bat :

net use LPT2: \\master\{nom de l'imprimante}

Commencez toujours à LPT2: pour le cas où la machine Windows aurait une imprimante locale ou un autre périphérique branché sur LPT1:. Nous avons partagé jusqu'à 9 imprimantes avec nos PC en réseau. Cela permet d'ajouter l'imprimante comme si elle était physiquement raccordée à la machine. C'est utile si l'imprimante n'est pas supportée par Linux (Lexmark 3200) et vous contrôlerez toutes ses options depuis chaque station — chaque utilisateur peut utiliser sa propre configuration par défaut !

Si le fichier logon.bat ne fonctionne pas et si sa sortie défile trop rapidement pour que vous puissiez voir ce qui se passe, rajoutez une ligne comportant simplement

pause

Cela arrêtera son éxécution tant que vous n'appuyez pas sur entrée.

NFS : Deux problèmes avec NFS semblent ressurgir sans arrêt dans les news. Premièrement, le serveur NFS de Linux s'idetifie comme version 3, alors qu'il ne supporte que la version 2 de NFS. Si vous utilisez Solaris, vous devrez utiliser l'option vers=2 pour que le mount de Solaris fonctionne. Deuxièmement, si vous utilisez NIS, NIS lui-même ne monte aucun système de fichiers. Pour le faire fonctionner comme vous pensez qu'il devrait le faire, vous devez faire collaborer NIS, NFS et autofs : NIS se charge de l'authentification et indique le répertoire personnel de l'utilisateur, autofs voit une tentative d'accès à /home/utilisateur et utilise NFS pour monter ce répertoire.

Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.