HOW-TO | Guide rapide | afpd.conf | mots de passe | astuces

HOW-TO : Netatalk sur Linux


par Anders Brownworth
[anders chez thehamptons.com]

Traduction par Etienne Herlent

Version 2.1.0
26 février 2000
http://www.anders.com/projects/netatalk/


Ce document est la traduction française du "Linux Netatalk-HOWTO" d'Anders Brownworth.

Elle a été réalisée début août 2000 sur la base de la version 2.1.0 du 26 février 2000 par Etienne Herlent, avec l'aimable autorisation d'Anders Brownworth.

La version originale de ce document sur trouve à http://www.anders.com/projects/netatalk/.

Veuillez adresser toute question concernant le contenu de ce document à Anders Brownworth <anders chez thehamptons.com>. Le traducteur utilisant Netatalk, il est possible qu'il soit en mesure de répondre aux questions concernant le contenu de ce document.

Veuillez adresser toute remarque concernant la traduction à Etienne Herlent.

Merci à mon i-pote César pour sa relecture.


Netatalk est un ensemble de logiciels qui permet à une machine Unix de fournir des services d'impression et d'accès aux fichiers selon le protocole Appletalk sur un réseau local. Netatalk supporte les protocoles AppleShare IP et Appletalk "classique". Avec Netatalk, des Macintosh peuvent monter des volumes Unix (NDT : dans la terminologie Apple, un volume correspond à une partition) et imprimer sur des files d'attente comme s'ils étaient des composants standards d'un réseau Appletalk.

Ce document est réalisé comme un guide pour aider l'administrateur d'un système Linux à paramétrer et administrer Netatalk. Linux est un Unix librement distribuable et répondant à la norme Posix 1 pour 386, 486, Pentium, Power Macintosh, Sun et Alpha, ainsi qu'expérimentalement pour d'autres plate-formes (SGI, etc).

Pour ceux d'entre vous qui sont impatients, voici le HOW-TO Netatalk sur Linux : Guide pour l'impatient.

Netatalk est réalisé par nos amis du Research Systems Unix Group à l'université du Michigan. [netatalk chez umich.edu]

Le véritable site de Netatalk est à : [http://rsug.itd.umich.edu/software/netatalk.html]

Un autre endroit pour trouver des informations concernant Netatalk est le Faq-O-Matic de Bill McGonigle à : [http://threepio.hitchcock.org/cgi-bin/faq/netatalk/faq.pl]

Le support d'AppleShare IP (AFP/TCP) ainsi que les dernières corrections de bug et d'améliorations sont comprises dans la version de Netatalk d'Adrian Sun appelée netatalk+asun. Cet HOW-TO traite de la version d'Adrian Sun car elle est la plus à jour. "L'ancienne version" de cet HOW-TO peut être trouvée à : [http://www.anders.com/projects/netatalk/old/] (NDT : non traduit).

Pour fournir des services de fichier et d'impression à des machines Windows (qui utilisent SMB sur TCP), vous devriez vous tourner vers Samba. Netatalk coexiste bien heureusement avec Samba. [http://ftp.easynet.be/samba/samba/samba.html]

Netatalk+asun permet à un Macintosh de voir une machine Linux. Pour réaliser l'inverse (une machine Linux qui voit un Macintosh) vous devez installer le module afpfs :
[http://www.odyssey.co.il/~heksterb/Software/afpfs/] Note: Ce site semble ne plus fonctionner, mais nous avons un miroir à :
* [http://www.anders.com/projects/netatalk/mirror/afpfs-1.0b1.tar.gz]
* [http://www.anders.com/projects/netatalk/mirror/afpfs-1.0b2q2.tar.gz]

David Foster écrit : afpfs n'est plus maintenu actuellement. L'interface du système de fichier dans le noyau a changé de manière significative, et afpfs n'a pas été recompilé depuis les premiers noyaux 2.1.x. J'ai bidouillé un peu pour qu'afpfs se compile avec les noyaux 2.2.x, mais ce n'est pas franchement beau à voir. Vous pouvez obtenir une version compilable à http://www.panix.com/~dfoster/afpfs/ (NDT : site disparu), mais je le considère au mieux comme pré-alpha (et un module du noyau en version pré-alpha est très, très dangereux). Personnellement, j'ai annoncé que je continuais le développement lorsque j'ai un peu de temps libre. Et vous savez ce que cela signifie :-).

Commentaires et corrections sont les bienvenus. Quelqu'un m'a envoyé un fichier diff de mes pages qui corrige mon orthographe atroce mais je l'ai perdu à cause d'une maladresse. Quiconque désirant m'aider à ce sujet sera le bienvenu.

Si vous rencontrez des problèmes avec Netatalk, un bon endroit pour obtenir de l'aide est linux-atalk listserv. Inscrivez-vous en envoyant un courrier électronique à listserv chez netspace.org, sans sujet mais avec, dans le corps du message, SUBSCRIBE LINUX-ATALK (votre nom complet). Pour vous désinscrire, envoyez un courrier électronique au même destinataire avec comme corps de message UNSUBSCRIBE LINUX-ATALK. Les messages adressés à listserv doivent être envoyés à linux-atalk chez netspace.org.


Avant de commencer :

Ce dont vous allez avoir besoin :


Décompactez et désarchivez le code source avec la commande suivante :

tar -xvfz netatalk-1.4b2+asun2.0a18.2.tar.gz

si vous téléchargeâtes la version en rpm :

eyore:~/src> rpm -i netatalk-1.4b2+asun2.1.0-5.i386.rpm

(NDT : il y a un RPM pour architecture PowerPC dans la distribution LinuxPPC 2000).

Editez le fichier Makefile dans le répertoire principal de l'arborescence source :

Affectez le répertoire de destination :

DESTDIR=/usr/local/atalk, qui est le répertoire par défaut, et qui est probablement correct pour la plupart des installations.

Mettez en commentaire le support PAM si vous ne l'avez pas.

Si vous n'avez pas PAM (Plugable Authentication Modules) vous devez mettre en commentaire la ligne PAMDIR=/usr. De manière générale, RedHat utilise PAM et Slackware non. PAM permet d'utiliser des modules d'identification des utilisateurs (méthodes de vérification des utilisateurs et des mots de passe) et de les ajouter à votre système. Des modules typiques de certification incluront le support de shadow password, de NIS, etc.

Editez le fichier etc/afpd/Makefile si vous avez besoin du support de shadow password. (PAM s'occupe de la vérification des "shadow password", si bien que si vous avez PAM et un système avec "shadow password", vous pouvez passer cette étape.)

La plupart des distributions majeures de Linux comme RedHat utilisent les "shadow password". Si vous ne savez pas si votre système utilise les "shadow passwords", regardez le fichier des mots de passe (NDT : le fichier est /etc/password sur LinuxPPC 2000, et sans doute sur les autres distributions basées sur RedHat). Si vous avez un "x" là où vous devriez avoir le mot de passe crypté, c'est que votre système utilise les "shadow passwords" et vous devez définir les "shadow passwords" dans le fichier Makefile. (exemple de ligne d'un fichier "shadow password": root:x:0:0::/root:/bin/tcsh )

Ajoutez -DSHADOWPW au fichier etc/afpd/Makefile comme ceci :

CFLAGS= ${DEFS} ${AFSDEFS} ${KRBDEFS} ${DESDEFS} ${OPTOPTS} ${INCPATH} \
        ${PAMDEFS} -DAPPLCNAME -DCRLF -DSHADOWPW # -DDOWNCASE

Si vous utilisez la bibliothèque libc.so.5, mettez en commentaire -lrpcsvc dans le fichier sys/linux/Makefile. Si vous utilisez PAM, ajoutez -DUSE_PAM à ce fichier Makefile (NDT : c'est dans les options de compilations qu'il faut ajouter -DUSE_PAM, comme c'est fait ci-dessus pour -DSHADOWPAW).

Installez la bibliothèque DES si vous n'en avez pas déjà une et que vous prévoyez d'utiliser des mots de passe cryptés. (Si ce n'est pas le cas, mettez en commentaire la ligne concernant DES dans le fichier Makefile et passez cette étape.)

Obtenez un exemplaire de libdes à l'URL suivante : [ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes.tar.gz].

Décompactez-le quelque part, et faites make.

Pour installer libdes sur votre système (ce qui n'est vraiment pas une mauvaise idée) tapez make install.

Vous aurez besoin du fichier des.h qui doit être là si le make a marché.

Copiez le fichier des.h dans le répertoire include du répertoire atalk : cp des.h /path/netatalk/include/.

(NDT : je n'ai pas moi même compilé libdes, mais, si la procédure d'installation est bien faite, le fichier des.h doit avoir été copié dans /usr/include ou /usr/local/include, et la bibliothèque libdes dans /usr/lib ou /usr/local/lib. Vérifiez ce point, et si ce n'est pas le cas, copiez ces fichiers aux endroits indiqués, ça pourra vous servir dans le cas où vous installeriez un autre utilitaire ayant besoin de cette bibliothèque).

Vous aurez besoin de paramétrer les fichiers "cleartext password" pour activer "2-Way Encrypted Passwords". Je parle de cela et d'autres choses dans le paragraphe traitant des mots de passe.

Installez TCP Wrappers s'il n'est pas déjà installé.

Pour être compilé, netatalk a besoin du fichier tcpd.h, donc si vous ne l'avez pas déjà, téléchargez le paquetage (NDT : package, en anglais) TCP Wrappers disponible à [ftp://ftp.cert.org/pub/tools/tcp_wrappers/].

Passez la commande cp tcpd.h /chemin-vers/netatalk/include/ pour copier le fichier tcpd.h dans le répertoire include de l'arborescence-source de Netatalk.

Vous avez probablement tcpd sur votre système. Dans le cas rare où ça ne serait pas le cas, vous devez le compiler maintenant en passant la commande

make REAL_DAEMON_DIR=/usr/sbin linux

et installez-le. Lisez les instructions d'installation du fichier README.

Compiler netatalk.

L'étape la plus importante : dans le répertoire source de l'arborescence de Netatalk, tapez make.

Vérifiez que tout se compile sans erreur. Vous pourrez voir des warnings que vous pourrez ignorer, mais si vous voyez le compilateur se terminer en erreur, essayez de trouver pourquoi ça ne va pas. Rappelez-vous que le compilateur a besoin des fichiers tcpd. h et des.h qu'il s'attend à trouver dans le répertoire include. Vérifiez donc qu'ils y sont bien.

Si vous avez vraiment des problèmes de compilation, essayez la page des trucs. Si vous avez vraiment des problèmes, vous pouvez télécharger une version précompilée de Netatalk sur la page de téléchargement (NDT : non traduite) :

[http://www.anders.com/projects/netatalk/download.html]

Installer netatalk.

Tapez make install dans le répertoire source et netatalk sera installé là où vous l'avez demandé dans le Makefile. (Par défaut, c'est dans /usr/local/atalk)

Editer le fichier /etc/services

Ajoutez les lignes suivantes à votre fichier /etc/services  :

rtmp            1/ddp           # Routing Table Maintenance Protocol
nbp             2/ddp           # Name Binding Protocol
echo            4/ddp           # AppleTalk Echo Protocol
zip             6/ddp           # Zone Information Protocol
afpovertcp      548/tcp         # AFP over TCP
afpovertcp      548/udp

Copier atalkd.conf

Tapez cp conf/atalkd.conf /usr/local/atalk/etc/. Le fichier de configuration le plus simple pour atalkd (comme celui que vous venez de copier) ne contient pas de commandes.

atalkd est l'interface "classique d'Appletalk" pour le noyau. Il va servir de lien entre le module Appletalk du noyau et le reste des fonctions classiques d'Appletalk de netatalk. Il va aussi s'occuper du routage Appletalk entre les multiples cartes-réseau.

Copier le fichier afpd.conf.

Tapez cp config/afpd.conf /usr/local/atalk/etc. Ce fichier positionne les options du serveur Appletalk classique et Appleshare IP. Le laisser tel quel est la chose la plus simple à faire, bien que par défaut AppleshareIP ne soit pas activé et comme il y a quelques options de configuration dans ce fichier, il existe une section spécifique.

Copier et éditer les fichiers AppleVolumes.*

Tapez cp conf/AppleVolumes.default /usr/local/atalk/etc et cp conf/AppleVolumes.system /usr/local/atalk/etc. Les fichiers AppleVolumes.default et AppleVolumes.system sont des tables de correspondances de chemin et de types et créateurs.

NDT : Les fichiers de Macintosh n'ont habituellement pas d'extension. On peut en mettre une mais ce n'est pas significatif, et les macounets ne le font pas car ils n'aiment pas ça. Les fichiers de Macintosh ont deux attributs de 4 octets chacun : le créateur et le type. Le créateur permet de faire le lien entre tous les fichiers créés par une application (y compris l'application elle-même), et le type, qui correspond à l'extension qu'on trouve dans d'autres systèmes, indique, bien évidemment, le type du fichier.

Par exemple, l'éditeur BBEdit a pour créateur 'R*ch' et pour type 'APPL'. Les fichiers créés par BBEdit ont le créateur 'R*ch' et le type 'TEXT'. Quand on ouvre un fichier de créateur 'R*ch' et de type différent de 'APPL', le finder (le gestionnaire du bureau et de fichiers de Macintosh) recherche dans la base de données du bureau quel est le premier fichier de créateur 'R*ch' et type 'APPL'. Il démarre alors cet exécutable en lui indiquant en paramètre le nom et le chemin du fichier que l'on vient d'ouvrir. C'est à l'application de vérifier qu'elle sait traiter ce type de fichier.

De la même manière, les créateurs et types permettent d'afficher correctement les icônes des documents (les fichiers de données). Les fichiers PDF, qui ont le type 'TEXT' n'auront pas la même icône que les fichiers de BBEdit, parce qu'ils n'ont pas le même créateur ('CARO', pour les fichiers d'Acrobat).

Le fichier AppleVolumes.default sera analysé quand un utilisateur réel se connecte (i.e.: pas le compte guest). Les réglages dans le fichier AppleVolumes.default peuvent être surchargés au moyen d'un fichier AppleVolumes ou .AppleVolumes présent dans le répertoire 'home' de l'utilisateur. Le fichier AppleVolumes.system sera exploité pour tous les utilisateurs.

Ajouter les lignes :

#
# volumes
      Home
/music "Some Tunes"
#
# type / creator mappings
.txt    TEXT    MSWD

fera que deux volumes seront montés sur le bureau de Macintosh, l'un appelé Home qui est le répertoire 'home' de l'utilisateur et un autre appelé Some Tunes qui correspond au répertoire /music du serveur Linux (NDT : sous MacOS, chaque volume porte un nom. Ce nom est à peu près équivalent à l'étiquette, ou label, des partitions FAT. Mais, à la différence de ce qui se passe du côté obscur, le nom d'un volume apparaît sous l'icône de celui-ci, et cela est très apprécié du macounet que je suis). Le reste du fichier est une table de correspondance entre des extensions et des couples de types et créateurs.

Un fichier de Macintosh a deux parties, une partie données (appelée data fork) et une partie ressources (appelée resource fork). Les fichiers Unix n'ont qu'une partie qui est une longue liste de bits (NDT : et qui correspond à la data fork). Dès lors, si le fichier test.txt a été créé sous Unix, il apparaîtra avec une icône générique de document à moins qu'il y ait une entrée correspondante dans la table des types et créateurs.

La dernière ligne de l'exemple fera de tout fichier se terminant par ".txt" un fichier ouvrable par Microsoft Word (MSWD) en tant que fichier texte (TEXT) et Word sera lancé quand ce fichier sera double-cliqué. (Vous devez enregistrer vos types et créateurs auprès d'Apple pour avoir un créateur officiel.) La liste de correspondance des types et créateurs par défaut du fichier sera vraisemblablement adaptée à moins que vous ne prévoyiez de créer de nombreux fichiers sous Unix et de les utiliser sur Macintosh.

Une des raisons possibles justifiant une grande table de correspondance de types et créateurs est l'exportation d'un même répertoire via Netatalk et Samba pour des clients sous Windows et que vous voulez que les utilisateurs de Macintosh n'aient qu'à double-cliquer sur les fichiers produits par les pécés pour les ouvrir.

NDT : les resources forks des fichiers créés sous MacOS sont prises en charge par Netatalk. Elles se trouvent sous forme de fichier Unix dans le répertoire .AppleDouble de chaque répertoire et sous-répertoire exporté.

Compiler Appletalk dans votre noyau.

Il y a deux sortes de serveurs Appletalk que vous pouvez utiliser, les deux pouvant tourner en même temps. Appletalk Classique a besoin d'atalkd et d'afpd tandis que "Appletalk over TCP/IP" ne nécessite qu'afpd. Atalkd a besoin qu'Appletalk et le support TCP/IP soient compilés dans votre noyau alors qu'Appletalk IP ne nécessite que le support TCP/IP. La majorité des distributions de Linux contiennent un noyau avec le support Appletalk intégré et tout le monde a probablement TCP/IP. Vous pouvez vérifier la présence du support d'Appletalk dans votre noyau en passant la commande :

dmesg | grep Apple

Si vous voyez quelque chose comme Appletalk 0.17 for Linux NET3.035, vous avez Appletalk Classique dans votre noyau. Sinon, vous pouvez vérifier qu'Appletalk est présent dans votre noyau sous forme de module en tapant : lsmod et vous devez voir apparaître Appletalk. Si aucune de ces commandes ne montre Appletalk, alors vous devez compiler Appletalk dans votre noyau et rebooter, ou compiler Appletalk sous forme de module et l'installer par insmod appletalk.o (NDT : avant de recompiler le noyau, vérifiez tout de même que le module ddp.o ou ipddp.o est présent dand le répertoire /lib/module/<n° de version du noyau>/net/). Si vous avez besoin d'aide pour compiler Appletalk dans le noyau, jetez un oeil au Kernel-HOWTO (habituellement présent dans le répertoire /usr/doc des distributions majeures)

Démarrer le serveur.

Voici maintenant le moment de vérité. Essayez de tester un démarrage du serveur netatalk en lançant l'un des scripts rc.atalk du répertoire principal de l'arborescence source de netatalk. Tapez ./rc.atalk.sysv start et attendez quelques poignées de secondes (NDT  : c'est vraiment long et ça paraît durer une éternité, voire deux. Avec LinuxPPC 2000, le lancement de netatalk se fait en tâche de fond de manière asynchrone, si bien que le démarrage de la machine Linux se poursuit pendant ce temps-là. Mais c'est tellement long que je suis prêt à travailler sous X avant que netatalk ne soit lancé complètement). Cela va démarrer un serveur Appletalk Classique et un serveur Appletalk IP si vous avez des options dans le fichier afpd.conf. Atalkd sera le plus long à démarrer car il vérifie le réseau avant de s'enregistrer.

Sinon, vous pouvez lancer un serveur "Appletalk over TCP/IP" seul si vous avez un serveur TCP configuré dans le fichier afpd.conf et en lançant afpd à la main :

/usr/local/atalk/etc/afpd -F /usr/local/atalk/etc/afpd.conf

Si tout semble avoir démarré sans râler, allez sur un Macintosh et ouvrez le Sélecteur dans le menu pomme (NDT : Le Macintosh en question doit bien évidemment se trouver sur le même réseau que la machine Linux). Cliquez sur AppleShare et vous devez voir le serveur netatalk (pour AppleshareIP, vous devez cliquer sur le bouton AppleshareIP et renseigner l'adresse IP de votre serveur ou son nom).

Avec un peu de chance, un dialogue vous demandera un mot de passe. Vous ne pouvez vous logguer qu'avec un compte non root qui a un shell valide et un mot de passe de 8 caractères ou moins. Le compte guest (NDT : invité, en français) est aussi autorisé à moins d'être interdit dans le fichier afpd.conf. Si vous ne pouvez vous connecter qu'en invité, c'est que vous n'avez probablement pas le support de "shadow password" dans les exécutables de netatalk. Si vous pouvez vous logguer, vous verrez une liste de volumes que vous pourrez sélectionner et monter.

Utilisez l'un des scripts de démarrage inclus dans netatalk pour lancer votre serveur lorsque le système démarre. Il existe différentes manières utilisées par les machines pour démarrer. Certaines ont un fichier rc.local où vous pourrez indiquer le chemin vers un script rc.atalk alors que d'autres utilisent des liens symboliques avec un plan de nommage destiné à déterminer l'ordre dans lequel les scripts de démarrage seront lancés. Recherchez les scripts de démarrage dans les répertoires /etc/rc.d/ ou /etc/init.d/.

Si vous voulez autoriser plus de 5 connexions, vous devez fournir le nombre maximal de connexions à afpd. C'est le rôle du paramètre -c.

afpd -c 25

Jonathan Benson fournit un script de démarrage de style SysV qui lit des informations de configuration dans un fichier et permet le démarrage en tâche de fond. Quiconque désirant l'utiliser, doit le désarchiver sous le compte root tout en étant dans le répertoire racine (i.e. : /), puis éditer le fichier /etc/atalk/config. Vous pouvez le télécharger ici :
[http://www.anders.com/projects/netatalk/mirror/atalk-sysv.tar.gz]

D'autres options sont possibles dans atalkd et afpd ainsi qu'un ensemble d'outils de diagnostic et d'administration. Essayez man atalkd et man afpd pour plus d'informations sur les options et allez à la page des utilitaires (NDT : non traduite) :
[http://www.anders.com/projects/netatalk/utils.html]

Appréciez !

Paul Hargrove a écrit un paquetage intéressant appelé hfs qui permet de monter, de lire et d'écrire des volumes Macintosh (disques durs, disquettes et CD-ROM (NDT : et Zip et certainement Jaz et tout autre type de volume HFS)). Si vous installez son module et montez un volume avec l'option fork=netatalk, vous pourrez y accéder par netatalk. Son module traite correctement les informations en ressource : les icônes apparaîteront comme il faut. [http://www-sccm.stanford.edu/Students/hargrove/HFS/]


 

Dernière mise à jour le 5/8/00.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh