Umgehung der Einschränkungen von CIFS/Samba

Umgehung der Einschränkungen von CIFS/Samba

Meine Situation: Ich habe ein NAS, das Freigaben über CIFS/Samba bereitstellt. Intern verwendet es ein ext3-Dateisystem, aber das ist (glaube ich) nicht relevant. Ich habe einige Linux-Computer (mit ext4-Dateisystemen), die ich auf diesen Freigaben sichern möchte.

Mein Problem: Die Verwendung des Shares für Backups wirft 2 Hauptprobleme auf. Einerseits kann ich nicht alle Dateien auf das NAS kopieren, da einige Dateien sehr lange Dateinamen haben, die CIFS nicht verarbeiten kann. Andererseits werden Datei- und Verzeichnisberechtigungen nicht korrekt kopiert. Beispielsweise sind bei jeder Datei auf dem Share alle "Execute"-Bits gesetzt, unabhängig von den Berechtigungen der Originaldatei.

Meine Frage: Wie kann ich diese „Mängel“ am einfachsten umgehen, sodass ich Dateien sichern und wiederherstellen kann, ohne Dateinamen und Berechtigungen manuell verwalten zu müssen?

Einige zusätzliche Informationen zu meinen bisherigen Experimenten:

  1. Meine erste Idee war, einfach ext4-Dateisysteme innerhalb (sparse) Dateien auf der Freigabe zu erstellen, diese dann zu mounten und für die eigentlichen Backups zu verwenden. Der Nachteil dabei ist, dass das Entfernen von Dateien aus den Dateisystemen die Größe der ext4-„Dateien“ auf der Freigabe nicht verringert und die Größe der Dateisysteme von Anfang an begrenzt sein muss. Es ist mühsam, sie nach der Erstellung zu skalieren.

  2. Ich habe versucht,ecryptfsweil ich hoffte, dass es die Dateinamen und Berechtigungen so verschlüsseln würde, dass die CIFS-Einschränkungen umgangen würden. Das hat nicht funktioniert, da Dateinamen zwar verschlüsselt, aber wieder als Dateinamen verwendet werden (lange Dateinamen werden also nur länger, nicht kürzer). Außerdem werden Berechtigungen von ecryptfs nicht „versteckt“. Die verschlüsselten Dateien behalten nur die Berechtigungen der Originale, sodass bei jeder entschlüsselten Datei wieder alle „Ausführungs“-Bits gesetzt wären.

  3. Eine freundliche Person im IRC hat empfohlen, eine dynamische Anzahl großer Dateien zu verwenden und diese als Volumes für LVM zu nutzen. Ich habe das noch nicht ausprobiert, aber theoretisch sollte es funktionieren. Ich hätte ein logisches Volume mit einem ext4, das auf mehrere Dateien auf der Freigabe verteilt wäre. Wenn ich mehr Speicherplatz bräuchte, würde ich mehr Dateien erstellen und sie dem Volume hinzufügen, wenn ich weniger Speicherplatz bräuchte, könnte ich einige entfernen. Der einzige Nachteil dabei ist, dass ich die Größenanpassungen trotzdem durchführen müsste (und regelmäßig prüfen müsste, wie viel Speicherplatz tatsächlich benötigt wird). Im Nachhinein bietet dies kaum oder gar keinen Vorteil gegenüber der Verwendung einzelner Dateien, da ich sie kürzen/vergrößern und dann auch die Größe des ext4-Dateisystems anpassen könnte.

  4. Ich stelle mir z. B. eine FUSE vor, die Dateinamen und Berechtigungen in einer Datenbank speichert und nicht darauf angewiesen ist, dass das zugrundeliegende Dateisystem alles unterstützt. Leider habe ich so etwas noch nicht gefunden.

Antwort1

Samba mit ecryptfs scheint bei mir unter Ubuntu 14.04 zu funktionieren.

Ich habe diese Anleitung verwendet:http://www.cyberciti.biz/faq/adding-a-user-to-a-samba-smb-share/

Ich vermute, dass der Trick darin besteht, dasselbe Passwort einzugeben in:

passwd USER

Und

smbpasswd -a USER

Ich gehe davon aus, dass ecryptfs das Passwort erkennt, wenn es an Samba weitergegeben wird und würde gerne eine Erklärung dazu hören, wie das passiert.

verwandte Informationen