Netatalk-Installation in Ubuntu

von Thomas Jakobi am Samstag, 13. Januar 2007 um 14:57 Uhr. Kommentare (10)

Nachdem mein Sohn Felix (11 Monate) meinen File-Server durch gezielte Betätigung des Reset-Knopfs etwas außer Gefecht gesetzt hat, habe ich ihn letzte Woche von Debian auf Ubuntu umgestellt. Nach einem Backup der Bootpartition war die Installation von CD sehr unproblematisch.

Anschließend wollte ich auf dem System noch einen AFP-Server und Bonjour installieren. AFP ist ein Netzwerkprotokoll, das Rechnern mit den Betriebssystemen Mac OS oder Mac OS X den Dateizugriff über ein Netzwerk ermöglicht. Bonjour ist eine Technik, die die automatische Erkennung von Computern, Geräten und verschiedenen Netzwerkdiensten in IP-Netzen bereitstellt.

Benötigte Pakete

netatalk – Dieses Paket ist eine Implementation von AFP unter Linux.
avahi – Dieses Paket ist eine Implementation des Bonjour (Zeroconf) Protokolls unter Linux.

Die Pakete sind nicht in der Standard-Distribution von Ubuntu enthalten. Es muss das 'universe' Repository freigeschaltet werden. Dies lässt sich folgendermaßen erreichen:

sudo nano /etc/apt/sources.list

und im Editor vor den Zeilen

#deb http://de.archive.ubuntu.com/ubuntu/ edgy universe
#deb-src http://de.archive.ubuntu.com/ubuntu/ edgy universe

die Rauten (#) löschen und die Datei mit [ctrl-o] speichern und den Editor mit [ctrl-x] beenden.

* Sollte z.B. Ubuntu Feisty Fawn installiert sein, muss in den obigen Zeilen edgy durch feisty ersetzt werden.

Danach:

sudo apt-get update

Netatalk

Achtung: Mit netatalk 2.0.4 ist die Builderei aus den Sources nicht mehr nötig. Mit DHX2 (benutzt libcrypt) wurde das Debian Lizenzproblem gelöst. In diesem Fall reicht im Folgenden einfach die Zeile "sudo apt-get install netatalk"

Das Standardpaket von Netatalk benutzt aus Lizenzgründen keine verschlüsselten Passwörter. Aus diesem Grund ist es besser das Paket aus den Sourcen neu zu kompilieren. Folgende Befehle beschreiben, wie man Netatalk (inklusive der passenden UAMs) ohne configure-Orgien und manuellem Bereitstellen aller möglichen Dependencies mit wenig Aufwand und ohne Konflikte mit dem Paketmanager zum Laufen bekommt:

sudo apt-get update
sudo apt-get install devscripts
sudo apt-get source netatalk
sudo apt-get build-dep netatalk
sudo apt-get install cracklib2-dev libssl-dev
cd netatalk-2.0.3/
DEB_BUILD_OPTIONS=ssl debuild -us -uc
sudo dpkg -i ../netatalk_*.deb
echo "netatalk hold" | sudo dpkg --set-selections

Die letzte Zeile verhindert, dass das kompilierte Paket später wieder vom Paketmanager überschrieben wird.

AppleVolumes.default

In der Datei /etc/netatalk/AppleVolumes.default sind als Standard nur die Homeverzeichnisse der Linux-User eingetragen. Andere Verzeichnisse auf dem Server lassen sich durch das Editieren dieser Datei freigeben.

Kommentarzeilen werden in der Datei wie üblich mit einer führenden '#' gekennzeichnet. Die Konfigurationszeilen sind folgendermaßen aufgebaut:

Pfad [Freigabe-Name] [Optionen]

Der Pfadname muss entweder ein vollständiger oder ein per ~-Shorthand gekürzter Pfadname auf dem Server sein. In diesen Pfad können Variablennamen eingebaut werden, die in der manpage von AppleVolumes.default beschrieben werden.

Der Freigabe-Name erscheint nach dem "Mit Server verbinden"-Dialog von Mac OS X als Laufwerk-Name auf dem Server. Wenn der Freigabe-Name Leerzeichen enthält, muss er in Anführungszeichen stehen. Der Freigabe-Name darf nicht länger als 27 Zeichen sein und kann kein ':' enthalten.

Jede Freigabe muss in einer eigenen Zeile stehen.

Es gibt eine Vielzahl von Optionen, die sich für jede Freigabe separat setzen lassen. Die wichtigsten Optionen werden hier beschrieben, weitere finden sich in der manpage von AppleVolumes.default

allow:[Benutzer/Gruppen]

Mit dieser Option werden Unix-Benutzer und -Gruppen zur Nutzung der Freigabe zugelassen. Benutzer- und Gruppennamen sind per Komma voneinander getrennt. Gruppennamen werden mit einem '@' eingeleitet. Beispiel: allow:benutzer1,benutzer2,@gruppe

deny:[Benutzer/Gruppen]

Mit dieser Option werden Unix-Benutzer und -Gruppen von der Nutzung der Freigabe ausgeschlossen. Format wie unter allow.

preexec:[Befehl]

Mit dieser Option kann ein Befehl angegeben werden, der ausgeführt wird, wenn die Freigabe gemountet wird.

postexec:[Befehl]

Mit dieser Option kann ein Befehl angegeben werden, der ausgeführt wird, wenn die Freigabe geschlossen wird.

root_preexec:[Befehl]

Mit dieser Option kann ein Befehl angegeben werden, der als root ausgeführt wird, wenn die Freigabe gemountet wird.

root_postexec:[Befehl]

Mit dieser Option kann ein Befehl angegeben werden, der als root ausgeführt wird, wenn die Freigabe geschlossen wird.

veto:[vetoed name]

Mit dieser Option werden Dateien und Verzeichnisse nicht angezeigt, deren (Teil-)Pfad mit dem dem Veto-Namen übereinstimmt. Mehrere Veto-Namen können mit '/' aneinander gehängt werden. Beispiel: Wenn der Dateipfad /abc/def/dateiname lautet wird mit der Option veto:/abc/ die Datei versteckt.

Avahi

Avahi wird ganz einfach mit folgenden Befehlen installiert:

sudo apt-get update
sudo apt-get install avahi-daemon

Danach muss nur noch folgendes in die Datei /etc/avahi/services/afpd.service eingetragen werden

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>

Start

Nach einem (Neu-)Start der Dienste netatalk und avahi per

sudo /etc/init.d/netatalk start
sudo /etc/init.d/avahi start

erscheint auf den angeschlossenen Clients unter Netzwerk der Server.

Diese Anleitung habe ich für Ubuntu Edgy Eft zusammengestellt, sie funktioniert auch mit Feisty Fawn und Gutsy Gibbon. Sie sollte auch unter Dapper Drake und eventuell auch Debian 3.1 funktionieren (eventuell wird dort aus dem Repository eine ältere Version von Netatalk heruntergeladen).

An dieser Stelle noch mal vielen Dank an Brian Elliott und n8han für die Grundlagen zu diesem Eintrag und an Thomas Kaiser und de.comp.sys.mac.lokale-netze für die Ergänzungen.


Speichern auf digg Speichern auf slashdot Speichern auf del.icio.us Speichern auf technorati Speichern auf furl Speichern auf Google Speichern auf Mister Wong
Thomas Jakobi
Re: Sohn läuft unter Ubuntu?
am 7. September. 2009, 23:06:04 Uhr
Die genaue Typbezeichnung kenne ich nicht. Aber sie hat sich bislang als sehr leistungsstark, flexibel und ausdauernd erwiesen. Und zum Glück sondert sie bislang noch keine getrockneten Trauben aus den falschen Löchern ab …
Klaus Franken
Sohn läuft unter Ubuntu?
am 3. September. 2009, 17:15:39 Uhr
> Nachdem mein Sohn Felix (11 Monate) meinen File-Server
> durch gezielte Betätigung des Reset-Knopfs etwas außer
> Gefecht gesetzt hat, habe ich ihn letzte Woche von Debian
> auf Ubuntu umgestellt.

Was hat Dein Sohn für eine CPU?
Thomas Jakobi
Re: Tut auch mit Ubuntu Intrepid 8.10 und Mac OS Leopard 10.5.6
am 26. Februar. 2009, 22:42:41 Uhr
Das hat mit den Lizenzbedingungen von OpenSSL und Debian zu tun.

Dies könnte sich aber mit der nächsten Version ändern.
* NEW: afpd: DHX2 uams using GNU libgcrypt.
Damian
Tut auch mit Ubuntu Intrepid 8.10 und Mac OS Leopard 10.5.6
am 24. Februar. 2009, 13:40:48 Uhr
Schöne Anleitung! Danke. Wieso kompilieren die Ubuntu-Entwickler SSL nicht direkt in das Paket, dann wäre es noch einfacher zu installieren...

Schöne Grüße! Damian
Syrabo
Re: Netatalk-Installation in Ubuntu
am 19. April. 2008, 23:59:51 Uhr
@Peter: falls noch von interesse, bei mir musste ich für die Zeile mit "DEB_BUILD!" folgende Variante nehmen:

http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication

Da klappte es mit Kubuntu 7.10
Thomas Jakobi
Re: Freigaben
am 10. Januar. 2008, 20:01:05 Uhr
Und was ist an den Freigaben/Benutzern so kompliziert? Es können sich alle auf dem Ubuntu-Rechner eingetragenen Benutzer über Netatalk mit ihrem Namen und Passwort mit diesem Ubuntu-Rechner verbinden.

Die Freigaben werden wie oben beschrieben in der Datei AppleVolumes.default eingestellt. Die Syntax der Datei steht auch dort. Den Rest kann man der manpage der Datei entnehmen.
genioe
Freigaben
am 10. Januar. 2008, 14:41:22 Uhr
Leider ist das Kompilieren und so weiter von Netatalk nicht das Problem. Anleitungen dazu gibt es ja (zwar Englisch, aber was solls) auch auf der "Hersteller"-Homepage. Das Einstellen der Freigaben, bzw. die Einstellung von Benutzern und Passwörtern wäre zu diesem Thema wesentlich interessanter :(
Bin seit einiger Zeit auf der Suche,..
Thomas Jakobi
Re: Netatalk
am 26. Juli. 2007, 22:04:31 Uhr
Hallo, normalerweise sollte fakeroot durch devscripts installiert werden. Ansonsten einfach 'apt-get install fakeroot' eingeben. Viele Grüße Jako
Peter
Netatalk
am 30. Juni. 2007, 19:39:10 Uhr
Hallo! Ich versuche gerade Netatalk nach deiner Anleitung zu installieren. Hier ist Schluß: > DEB_BUILD_OPTIONS=ssl debuild Fehlermeldung: debuild: fatal error at line 897: problem running fakeroot: either install the fakeroot package, use a -r option to select another root command program to use or run me as root! Ich habs mit sudo ausprobiert, geht aber nicht. Hast du vielleicht einen Tipp? Gruß Peter PS: Hier läuft Kubuntu 7.04
Ralf
Congratulations!
am 22. Februar. 2007, 00:13:06 Uhr
Hi Jako, habe mir gerade gedacht mal wieder auf deiner Site vorbeizuschauen und habe dabei ja gleich einige Neuigkeiten über dich mitbekommen: Münster (nicht mehr Bonn), Kind, ... Da kann ich ja nur gratulieren und dir wünschen, dass es einerseits geschäftlich gut weitergeht (Tipp an Externe: empfehlenswert!) und natürlich auch privat alles im Lot ist und bleibt! Viele Grüße Ralf - du weißt schon welcher ... ;-)

Kommentar schreiben

  • Benötigte Felder sind mit einem Stern (*) markiert.
  • Es ist nicht möglich im Kommentar URLs und Links zu hinterlassen.