Mit dem netatalk können Sie einen leistungsfähigen File- und Druckserver für Mac OS-Clients realisieren. Es ist möglich, von einem Macintosh aus auf Daten des Linux-Rechners zuzugreifen oder auf einem angeschlossenen Drucker zu drucken.
Netatalk ist eine Suite von Unix-Programmen, die auf dem im Kernel implementierten DDP (Datagram Delivery Protocol) aufsetzen und die AppleTalk-Protokoll-Familie (ADSP, ATP, ASP, RTMP, NBP, ZIP, AEP und PAP) implementieren.
AppleTalk ist im Prinzip ein Äquivalent zum wesentlich weiter verbreiteten TCP (Transmission Control Protocol). Viele auf TCP/IP aufsetzende Dienste, zum Beispiel zur Auflösung von Hostnamen und Zeitsynchronisation, finden ihre Entsprechung unter AppleTalk. Beispielsweise wird an Stelle von von ping (ICMP ECHO_REQUEST, Internet Control Message Protocol) der Befehl aecho (AEP, AppleTalk Echo Protocol) verwendet.
Folgende drei Daemonen werden normalerweise auf dem Server gestartet:
Der atalkd („AppleTalk-Netzwerk-Manager“), der dem Programm ip entspricht;
afpd („AppleTalk Filing Protocol daemon“), der für Macintosh-Clients ein Interface zu Unix-Dateisystemen zur Verfügung stellt;
papd („Printer Access Protocol daemon“), der Drucker im (AppleTalk-) Netz bereitstellt.
Sie können ohne weiteres – und in heterogenen Netzwerkumgebungen ist dies sehr nützlich – Verzeichnisse auf dem Server nicht nur über Netatalk, sondern gleichzeitig über Samba (für Windows-Clients, siehe voriges Kapitel) und über NFS (siehe 14.9. “NFS – verteilte Dateisysteme”), exportieren. Datensicherung und die Verwaltung der Nutzerrechte können zentral auf dem Linux-Server erfolgen.
Beachten Sie bitte bei der Verwendung von Netatalk folgende Beschränkungen:
Wegen einer Einschränkung der Macintosh-Clients dürfen die Passwörter der Benutzer auf dem Server maximal 8 Zeichen lang sein.
Auf Unix-Dateien mit Namen länger als 31 Zeichen können Macintosh-Clients nicht zugreifen.
Dateinamen dürfen keine Doppelpunkte (:) enthalten, weil diese unter Mac OS als Separator in Pfadnamen dienen.
In der Standardkonfiguration ist Netatalk als Fileserver für die auf dem Linux-System eingetragenen Benutzer schon voll funktionsfähig. Um die weitergehenden Features zu nutzen, müssen Sie einige Einstellungen in den Konfigurationsdateien vornehmen. Diese befinden sich im Verzeichnis /etc/netatalk.
Alle Konfigurationsdateien sind reine Textdateien. Text, der hinter einer Raute # steht, wird ignoriert („Kommentare“), leere Zeilen ebenso. Über die Datei /etc/netatalk/netatalk.conf werden die verschiedenen Dienste (Drucker, Appletalk Broadcast, Appletalk via TCP/IP, Timeserver) aktiviert:
ATALKD_RUN=yes PAPD_RUN=yes AFPD_RUN=yes TIMELORD_RUN=no
In /etc/netatalk/atalkd.conf legt man fest, über welche Interfaces die Dienste angeboten werden. Meist ist dies eth0, und es genügt, wenn hier wie in der Beispieldatei als einziger Wert eth0 eingetragen ist. Tragen Sie weitere Interfaces ein, wenn Sie zum Beispiel mehrere Netzwerkkarten gleichzeitig verwenden. Wird der Server gestartet, sucht er im Netzwerk nach bereits vorhandenen Zonen und Servern und verändert die entsprechende Zeile, indem er die konfigurierten AppleTalk-Netzwerk-Adressen einträgt. Am Ende der Datei finden Sie dann eine Zeile entsprechend folgender:
eth0 -phase 2 -net 0-65534 -addr 65280.57
Sollten Sie komplexere Konfigurationen vornehmen wollen, finden Sie in der Konfigurationsdatei Beispiele. Dokumentation über weitere Optionen können Sie außerdem der Manual-Page zum afpd entnehmen.
In der Datei afpd.conf wird festgelegt, wie Ihr Fileserver auf Mac-OS-Rechnern in der erscheint. Wie die anderen Konfigurationsdateien enthält auch diese ausführliche Kommentare, die die vielfältigen Optionen erklären.
Ändern Sie hier nichts, wird einfach der Default-Server gestartet und in der mit dem Hostnamen angezeigt. Sie müssen also hier nicht unbedingt etwas eintragen, allerdings ist es auch möglich, Fileserver mit verschiedenen Namen und Optionen zu definieren, um zum Beispiel einen speziellen „Guest Server“ anzubieten, auf dem man als „Gast“ Dateien ablegen kann:
"Guest server" -uamlist uams_guest.so
Sie können auch einen Server definieren, der keinen Gastzugang erlaubt, sondern nur für Benutzer zugänglich ist, die auf dem Linux-System existieren:
"Font server" -uamlist uams_clrtxt.so,uams_dhx.so
Dieses Verhalten wird gesteuert durch die Option uamlist gefolgt von einer durch Kommata getrennten Liste der zu verwendenden Authentifizierungsmodule. Default ist, dass alle Verfahren aktiv sind.
Ein AppleShare-Server stellt seine Dienste standardmäßig nicht nur über AppleTalk, sondern auch („encapsulated“) über TCP/IP zur Verfügung. Der Default-Port ist 548. Für zusätzliche AppleShare-Server (auf dem gleichen Rechner) müssen Sie, wenn diese ebenfalls auch über TCP laufen sollen, dedizierte Ports zuweisen. Die Bereitstellung des Dienstes über TCP/IP ermöglicht den Zugriff auf den Server auch über nicht AppleTalk-Netze wie zum Beispiel das Internet.
Die Syntax wäre dann zum Beispiel:
"Font server" -uamlist uams_clrtxt.so,uams_dhx.so -port 12000
Der AppleShare-Server erscheint hier im Netz mit dem Namen Font Server, erlaubt keinen Zugriff für Gäste und ist auf den Port 12000 eingestellt. Damit ist er auch über TCP/IP-Router hinweg erreichbar.
Welche (auf dem Server liegenden) Verzeichnisse der jeweilige AppleShare-Server dann als Netz-Volumes bereitstellt, wird in der Datei AppleVolumes.default definiert (die weiter unten näher erläutert wird). Mit der -defaultvol Option können Sie für einen einzelnen AppleShare-Server auch eine andere Datei festlegen, in der abweichende Vorgaben gemacht werden, zum Beispiel (in einer Zeile):
"Guest server" -uamlist uams_guest.so -defaultvol \ /etc/netatalk/AppleVolumes.guest
Weitere Optionen sind in der Datei afpd.conf selbst erklärt.
Die Verzeichnisse, die exportiert werden sollen, werden in der Datei AppleVolumes.default ausgewählt. Die Zugriffsrechte werden dabei durch die unter Unix üblichen Benutzer- und Gruppen-Rechte festgelegt.
![]() | Wichtig |
|---|---|
Hier hat sich die Syntax teilweise geändert. Bitte berücksichtigen Sie dies, wenn Sie von einer älteren Version updaten; zum Beispiel heißt es statt access= jetzt allow: (ein charakteristisches Symptom wäre, wenn Sie auf den Mac-Clients unter AppleTalk statt der Laufwerksbezeichnung deren Optionen angezeigt bekommen.) Da bei einem Update die neuen Dateien mit der Endung .rpmnew angelegt werden, kann es sein, dass Ihre alten Einstellungen unter Umständen wegen der geänderten Syntax nicht mehr funktionieren. Wir empfehlen Ihnen, ein Backup von Ihren Konfigurationsdateien zu machen, aus diesen Ihre alten Einstellungen in die neuen Dateien zu übernehmen und diese dann umzubenennen. So profitieren Sie auch von den aktuellen ausführlichen Kommentaren, die zur Erklärung der diversen Optionen in den Konfigurationsdateien enthalten sind. | |
Neben AppleVolumes.default können zusätzliche Dateien angelegt werden, zum Beispiel AppleVolumes.guest, die von bestimmten Servern benutzt werden (indem in der Datei afpd.conf die -defaultvol-Option benutzt wird – siehe voriger Abschnitt).
Die Syntax ist denkbar einfach:
/usr/local/psfonts "PostScript Fonts"
bedeutet, dass das in dem Rootverzeichnis liegende Linux-Verzeichnis /usr/local/psfonts als AppleShare-Volume mit dem Namen „PostScript Fonts“ freigegeben wird.
Optionen werden, durch Leerzeichen getrennt, an die Zeile angehängt. Eine sehr nützliche Option ist die Zugriffsbeschränkung:
/usr/local/psfonts "PostScript Fonts" allow:User1,@gruppe0
was den Zugriff auf das Volume „PostScript Fonts“ auf den Benutzer User1 und alle Mitglieder der Gruppe gruppe0 beschränkt. Diese müssen natürlich dem Server bekannt sein. Entsprechend können Sie mit deny:User2 auch explizit Nutzer ausschließen.
Bitte berücksichtigen Sie, dass diese Einschränkungen für den Zugriff über AppleTalk gelten und nichts mit den Rechten zu tun haben, die der User hat, wenn er sich auf dem Server selber einloggen kann.
Netatalk legt zur Abbildung der Mac-OS-typischen Ressource-Fork von Dateien im Linux-Dateisystem .AppleDouble-Verzeichnisse an. Mit der Option noadouble können Sie bestimmen, dass diese Verzeichnisse erst dann angelegt werden, wenn sie tatsächlich benötigt werden. Syntax:
/usr/local/guests "Guests" options:noadouble
Weitere Optionen und Möglichkeiten entnehmen Sie bitte den Erklärungen in der Datei selbst.
Übrigens: In dieser Konfigurationsdatei finden Sie ebenfalls eine kleine unschuldige Tilde (`~'). Diese Tilde steht für das Homeverzeichnis eines jeden Benutzers auf dem Server. Dadurch kann jedem Benutzer automatisch sein Homeverzeichnis bereitgestellt werden, ohne dass jedes einzelne hier explizit angegeben werden müsste. Die installierte Beispieldatei enthält bereits eine Tilde, weshalb Netatalk standardmäßig die Homeverzeichnisse bereitstellt, wenn Sie an dieser Datei nichts ändern.
Der afpd sucht außerdem im Homeverzeichnis eines angemeldeten Benutzers nach einer Datei Applevolumes oder .Applevolumes. Einträge in dieser Datei ergänzen die Einträge in den Serverdateien AppleVolumes.system und AppleVolumes.default, um weitere individuelle type/creator-Zuordnungen zu ermöglichen und auf Dateisysteme zuzugreifen. Diese Einträge sind Ergänzungen und ermöglichen keine Zugriffe, die nicht von Serverseite für diesen Benutzer erlaubt sind.
Die Datei netatalk.pamd dient der Authentifizierung über PAM (Pluggable Authentication Modules), was in unserem Rahmen hier ohne Bedeutung ist.
In der Datei AppleVolumes.System legen Sie fest, welche (Mac-OS-typischen) Type- und Creator-Zuordnungen zu bestimmten Dateiendungen erfolgen soll. Eine ganze Reihe von Standardwerten sind schon vorgegeben. Wenn eine Datei mit einem generischen weißen Icon angezeigt wird, ist in diesem Fall noch kein Eintrag vorhanden. Sollten Sie Probleme haben, eine Textdatei eines anderen Systems unter Mac OS korrekt öffnen zu können, bzw. das umgekehrte Problem, kontrollieren Sie dort die Einträge.
Über die Datei papd.conf konfigurierbar wird ein Laserwriter-Dienst zur Verfügung gestellt. Der Drucker lpd muss lokal schon funktionieren (siehe Kapitel 5. Druckerbetrieb). Wenn Sie mit dem Kommando lpr datei.txt lokal drucken können, ist der erste Schritt erfolgreich getan.
Sie müssen in papd.conf nichts eingeben, wenn unter Linux ein lokaler Drucker eingerichtet ist, da ohne weitere Angaben Druckaufträge einfach an den Druck-Daemon lpd weitergegeben werden. Der Drucker meldet sich im AppleTalk-Netz als Laserwriter. Sie können aber auch bestimmte Drucker wie folgt eintragen:
Drucker_Empfang:pr=lp:pd=/etc/netatalk/kyocera.ppd
Dies lässt den Drucker mit dem Namen Drucker_Empfang in der Auswahl erscheinen. Die entsprechende Druckerbeschreibungsdatei gibt es gewöhnlich beim Hersteller. Ansonsten nehmen Sie einfach die Datei Laserwriter aus dem Ordner Systemerweiterungen; allerdings können Sie dann meist nicht alle Features benutzen.
Der Server wird per Init-Skript beim Systemstart gestartet oder per Hand mit: rcatalk start. Das Init-Skript befindet sich in /etc/init.d/atalk. Den Start erledigt das Startskript im Hintergrund; es dauert ca. eine Minute, bis die AppleTalk-Interfaces konfiguriert und erreichbar sind. Sie können mit einer Statusabfrage sehen, ob es soweit ist (erkennbar daran, dass dreimal OK ausgegeben wird):
rcatalk status Checking for service atalk:OKOKOK
Gehen Sie nun an einen Mac, der unter Mac OS läuft. Kontrollieren Sie, dass AppleTalk aktiviert ist, wählen Sie , doppelklicken Sie ; in dem Fenster sollten Sie nun den Namen Ihres Servers sehen. Doppelklicken Sie ihn und melden sie sich an. Wählen Sie das Laufwerk und – voilà – hier ist Ihr Netzlaufwerk unter Mac OS.
Mit Servern, die nur über TCP und nicht über DDP laufen, können Sie sich verbinden, indem Sie in der auf klicken und die entsprechende IP-Adresse, gegebenenfalls gefolgt von einem Doppelpunkt und der Portnummer, eingeben.
Um alle Möglichkeiten, die das netatalk bietet, voll auszuschöpfen, empfiehlt es sich, in den entsprechenden Manual-Pages zu stöbern. Diese finden Sie mit dem Befehl: rpm -qd netatalk Noch ein Hinweis: Die Datei /etc/netatalk/netatalk.conf wird in unserer Version von netatalk nicht verwendet, Sie können sie einfach ignorieren. Hilfreiche URLs: