Copyright © 2000 JC Pollman, Bill Mote
Copyright © 2000 Arnaud Gomes-do-Vale
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
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.
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.
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 ».
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
.
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.
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.
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 :
Le nom du domaine de vos machines windows.
Nécessaire si vous utilisez Windows 98. Leur utilisation est décrite ci-dessous.
Emplacement des mots de passe cryptés.
Le niveau 8 signifie que la casse n'est pas prise en compte dans les noms d'utilisateurs et les mots de passe.
Cette valeur accélère les connexions sur le réseau
C'est le plus important. Voir ci-dessous.
Pour l'utilisation domestique, il n'y a qu'un serveur maître.
Plus c'est haut, mieux c'est. La valeur 65 convient.
Nécessaire pour partager des répertoires.
Nous ne relayons rien.
Nécessaire pour partager des répertoires.
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.
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.
Allez dans Panneau de configuration -> Mots de passe. Dans le panneau supérieur, cliquez sur « Les utilisateurs peuvent personnaliser... » et sélectionnez une ou l'autre des deux options du bas, ou les deux. Cliquez sur .
. Sélectionnez la seconde option
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
. Cochez la case 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 . 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).
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.
Au prochain redémarrage de Windows, vous devrez indiquer votre nom d'utilisateur, votre mot de passe et votre domaine.
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.
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.
Vous devez faire tourner un certain nombre de programmes, et votre noyau doit être compilé avec certaines options. Voyons ça une chose à la fois.
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.
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.
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.
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.
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
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.
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.
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.