Samba-Installation auf einem Nur-Lese-System

0

Ich konnte im Web nichts Nützliches finden.

Hier ist die Geschichte. Ich versuche, Samba (Version 4.5.12) unter Debian (Raspbian, aber es spielt keine Rolle) zu installieren. Debian ist auf einem schreibgeschützten Dateisystem installiert. Die Installation ist in Ordnung, aber Samba startet nicht im RO-Modus (schreibgeschützt). Ich habe versucht, symbolische Verknüpfungen der erforderlichen Daten ( /var/lib/samba files) auf einer externen Festplatte (Lese- / Schreibzugriff) herzustellen, aber beim Start von Samba ist ein Fehler aufgetreten. Systemctl konnte smdb.service nicht starten. In systemctl statuswar nichts Interessantes. Aber samba/log.ich habe festgestellt, dass:

[2018/04/01 17:11:55.333301,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:12:35.116576,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:42:24.843043,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: Read-only file system
[2018/04/01 18:04:41.824892,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: No such file or directory

Googeln hat mir geholfen herauszufinden, dass die directory_create_or_exist_strictFunktion im Samba-Quellcode nach Verzeichnissen sucht (in meinem Fall nach /var/lib/samba/private/msg.sock), die echt sind.

Gibt es eine Linux-Way-Lösung? Sollte ich die directory_create_or_exist_strictFunktion neu schreiben oder einen absoluten Pfad für das msg.sockVerzeichnis auf der externen Festplatte angeben? Oder gibt es eine andere Möglichkeit, diesen Ordner auf eine externe Festplatte zu spiegeln? Bitte teilen Sie mir einige Tipps mit.

SteAlzzer
quelle

Antworten:

0

Das Problem ist wahrscheinlich, dass Sie einen Softlink verwenden, um den Samba-Var-Ordner auf die andere Festplatte umzuleiten.
Ein Softlink verhält sich etwas anders als ein echter Ordner und könnte für den Samba-Socket-Erstellungscode nicht akzeptabel sein.

In einem Setup wie Ihrem würde ich das gesamte / var-Dateisystem auf der anderen Festplatte (oder als tmpfs) ablegen und es einfach beim Booten einbinden.
Oder, wenn Sie nicht den ganzen Weg wollen, erstellen Sie einfach ein tmpfs-Dateisystem beim Booten und hängen Sie dieses unter / var / lib / samba ein.

Ein Einhängepunkt sollte in Ordnung sein. Andernfalls wäre kein Linux-System jemals in der Lage, / var auf einem anderen Dateisystem abzulegen.

Tonny
quelle