Samba-Installation auf einem schreibgeschützten System

Samba-Installation auf einem schreibgeschützten System

Ich konnte im Internet nichts Nützliches finden.

Hier ist die Geschichte. Ich versuche, Samba (Version 4.5.12) auf Debian (Raspbian, aber das ist egal) 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 Links der erforderlichen Daten ( /var/lib/samba files) auf einer externen Festplatte (die lesbar und beschreibbar ist) zu erstellen, aber beim Start von Samba ist ein Fehler aufgetreten – systemctl konnte smdb.service nicht starten. Es systemctl statuswar nichts Interessantes dabei. Aber in samba/log.habe ich Folgendes gefunden:

[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

Durch Googeln habe ich herausgefunden, dass die directory_create_or_exist_strictFunktion im Samba-Quellcode prüft, ob Verzeichnisse (in meinem Fall /var/lib/samba/private/msg.sock) echt sind.

Gibt es eine Linux-Lösung? Soll ich die Funktion neu schreiben directory_create_or_exist_strictoder einen absoluten Pfad für msg.sockdas Verzeichnis auf der externen Festplatte erstellen? Oder gibt es eine andere Möglichkeit, diesen Ordner auf der externen Festplatte zu spiegeln? Bitte geben Sie mir ein paar Tipps.

Antwort1

Das Problem besteht wahrscheinlich darin, 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 ist für den Samba-Socket-Erstellungscode möglicherweise nicht akzeptabel.

Was ich in einem Setup wie Ihrem tun würde, ist, das gesamte /var-Dateisystem auf die andere Festplatte zu legen (oder als tmpfs) und es einfach beim Booten zu mounten.
Oder, wenn Sie nicht den ganzen Weg gehen möchten, erstellen Sie einfach beim Booten ein tmpfs-Dateisystem und mounten Sie es unter /var/lib/samba.

Ein Einhängepunkt sollte in Ordnung sein. Andernfalls könnte kein Linux-System /var jemals auf einem anderen Dateisystem ablegen.

verwandte Informationen