Good to Know Database

Raspbian Wheezy: Rsync-Server einrichten


Rsync dient zur Synchronisation von einzelnen Dateien und kompletten Verzeichnissen über ein Netzwerk. Der Vorteil von Rsync ist, dass nicht alle Dateien komplett übertragen werden, sondern nur die geänderten Teile von bestehenden Dateien und neu erstellte Dateien. Ich möchte hier kurz beschreiben wie Sie einen Rsync-Server auf dem Raspberry Pi unter Raspbian einrichten können.

Als Grundlage wurde hier das Raspbian Image vom 07.01.2014 (2014-01-07-wheezy-raspbian.zip) verwendet.

Installation von Rsync

In der Regel ist bei den Raspbian-Images Rsync bereits installiert. Sollte dies nicht der Fall sein, aktualisieren Sie zuerst die lokale Paketdatenbank und installieren anschließend das Paket rsync.

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install rsync

Rsync-Konfigurationsdatei anlegen

Die Konfiguration des Rsync-Daemons erfolgt in der Datei /etc/rsyncd.conf, welche Sie mit einem Editor anlegen müssen.

pi@raspberrypi ~ $ sudo vi /etc/rsyncd.conf

Kommen wir zuerst zu den Optionen für den Benutzer und die Gruppe als welche man später auf den Rsync-Server zugreifen wird. Mit der Option uid können Sie einen existierenden Benutzernamen einstellen, der dann bei einem Zugriff über Rsync verwendet wird. Die Option gid gibt die Gruppe an welche ebenfalls auf dem System vorhanden sein muss. Wenn Sie die Option uid nicht angeben (default) wird der User nobody verwendet.

uid = nobody
gid = nogroup

Mit der nächsten Option können Sie einstellen ob die Clients Dateien hochladen dürfen oder nicht. Standardmäßig steht diese Option auf true.

read only = true

Das Gegenteil zu read only ist write only. Diese Option wird in dieser Beispielkonfiguration nicht aufgelistet, da sie dadurch auf false gesetzt wird. Wollen Sie keine Downloads zulassen, müssen Sie die Option write only auf true setzen.

Die Option use chroot sollten Sie auf true setzen. Dadurch wird verhindert, dass sich eventuell ein Benutzer Zugang zu anderen Verzeichnissen außerhalb der Rsync-Freigaben verschaffen kann.

use chroot = true

Die nächsten Optionen sind zur Konfiguration des Logfiles. Sie können diese einfach übernehmen.

transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log

Jetzt kommen wir zur Zugriffskontrolle auf den Rsync-Server. Sollen zum Beispiel nur Rechner aus dem IP-Adressbereich 192.168.10.0 bis 192.168.10.255 Zugriff haben, müssen Sie dies wie folgt angeben.

hosts allow = 192.168.10.0/24

Soviel zum allgemeinen Teil, kommen wir nun zur Freigabe der Verzeichnisse. Ich will Ihnen hier zeigen wie Sie das Verzeichnis /data/rsync mit Logindaten freigeben können. Zuerst müssen Sie einen Namen für die Freigabe angeben. Dieser muss zwischen zwei eckigen Klammern stehen.

[main]

Danach wird der Pfad zum Verzeichnis angegeben welches Sie freigeben wollen.

  path = /data/rsync

Damit die Benutzer wissen was sich in dem Verzeichnis befindet können Sie einen Kommentar für die Freigabe hinterlegen.

  comment = Rsync main directory

Mit der Option auth users werden die Benutzer eingetragen welche Zugriff auf diese Freigabe bekommen sollen. Wollen Sie keine Benutzerbeschränkung einrichten, ignorieren Sie die zwei folgenden Optionen.

  auth users = user1, user2, user3

Die nächste Option enthält den Pfad zur rsyncd.secrets in welcher die Benutzernamen und die dazugehörigen Passwörter gespeichert werden.

  secrets file = /etc/rsyncd.secrets

Da Sie die angegebenen Benutzer nicht im System einrichten müssen, müssen Sie für jeden Benutzer einen Eintrag in der rsyncd.secrets anlegen. Dazu speichern Sie jetzt die rsyncd.conf und erstellen die rsyncd.secrets.

pi@raspberrypi ~ $ sudo vi /etc/rsyncd.secrets

In diese Datei müssen Sie jeden Benutzer mit Passwort eintragen der auf die Rsync-Freigabe zugreifen darf.

user1:password1
user2:password2
user3:password3

Nachdem Sie alle Benutzer eingetragen haben, speichern Sie die Datei ab. Damit nicht jeder Benutzer die Passwörter einsehen kann, sollten Sie die Zugriffsrechte der Datei ändern.

pi@raspberrypi ~ $ sudo chmod 0600 /etc/rsyncd.secrets

Sollten Sie noch weitere Optionen oder nähere Informationen zu den beschriebenen Optionen benötigen, können Sie diese in der Manpage zur rsyncd.conf nachlesen.

pi@raspberrypi ~ $ man rsyncd.conf

Rsync-Daemon aktivieren

Damit Rsync als Daemon ausgeführt wird, müssen Sie die Konfigurationsdatei /etc/default/rsync anpassen.

pi@raspberrypi ~ $ sudo vi /etc/default/rsync

In dieser Datei sollten Sie den folgenden Abschnitt vorfinden.

# start rsync in daemon mode from init.d script?
#  only allowed values are "true", "false", and "inetd"
#  Use "inetd" if you want to start the rsyncd from inetd,
#  all this does is prevent the init.d script from printing a message
#  about not starting rsyncd (you still need to modify inetd's config yourself).
RSYNC_ENABLE=false

Ändern Sie den Wert der Option RSYNC_ENABLE auf true ab.

RSYNC_ENABLE=true

Nachdem Sie die Datei gespeichert haben, können Sie den Rsync-Daemon starten.

pi@raspberrypi ~ $ sudo /etc/init.d/rsync start

Zugriff auf den Rsync-Server testen

Um die Funktion des Rsync-Servers zu überprüfen, sollten Sie ein zweites Linux-System verwenden auf welchem ebenfalls der Befehl rsync installiert ist. In diesem Fall wird ein Ubuntu 12.04 System verwendet.

Mit dem folgenden Befehl sehen Sie alle Freigaben mit den dazugehörigen Kommentaren eines Rsync-Servers. Hier wird der Rsync-Server mit der Adresse raspberrypi.home.lan angesprochen. Alternativ können Sie auch die IP-Adresse von Ihrem Rsync-Server angeben.

georg@ubuntu1204:~$ rsync raspberrypi.home.lan::
main            Rsync main directory

Um den Inhalt einer Freigabe anzuzeigen müssen Sie dem vorhergehden Befehl nur den Namen der Freigabe anhängen. Da in diesem Fall für den Zugriff auf die Freigabe ein Benutzername und Passwort nötig ist, müssen Sie den Benutzernamen ebenfalls angeben. Das Passwort wird nach dem Aufruf des Befehls abgefragt.

georg@ubuntu1204:~$ rsync user1@raspberrypi.home.lan::main
Password:
drwxr-xr-x        4096 2014/03/08 13:03:24 .
drwxr-xr-x        4096 2014/03/08 13:03:24 subdir

Um den Inhalt von Unterordnern einzusehen, geben Sie noch den Verzeichnisnamen an. Beachten Sie dabei, dass Sie am Ende einen Slash angeben. Ohne diesen wird nur das Verzeichnis angezeigt und nicht dessen Inhalt.

georg@ubuntu1204:~$ rsync user1@raspberrypi.home.lan::main/subdir/
Password:
drwxr-xr-x        4096 2014/03/08 13:06:54 .
-rw-r--r--           0 2014/03/08 13:06:54 testfile


Dieser Eintrag wurde am 08.03.2014 erstellt und zuletzt am 25.09.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2546.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer