Wenn ihr ein QNAP NAS habt und vom Mac aus darauf via SMB zugreift, dann habt ihr vielleicht schon mal bemerkt, dass alle Dateien und Ordner, die ihr vom NAS auf den Mac zurück kopiert, nur noch Schreib- und Leserechte für den Benutzer haben, mit dem ihr am Mac angemeldet seid und für sonst niemanden. Das alleine ist schon nicht so toll, ärgerlich wird es aber, wenn ihr die Dateien mal in Terminal.app anseht und erkennt, dass alle Dateien als ausführbar gekennzeichnet sind, also mit -rwx------.

Eine Möglichkeit, das direkt in der NAS-Oberfläche des QNAP zu verändern gibt es nicht. Der SMB-Server den QNAP verwendet, lässt sich nicht entsprechend konfigurieren. Auch nicht auf der Konsole via ssh-Login. Doch es gibt eine andere Lösung: einen „eigenen“ SMB-Server auf dem NAS installieren.

Der Artikel heute geht einwenig tiefer als sonst und ihr solltet schon etwas Erfahrung mit der Konsole und einem Samba-Server haben. Ich versuche zwar möglichst einfach zu schreiben, aber dennoch ist Wissen zu Samba und Co hilfreich.

1. SMB-Server im NAS deaktivieren

Klar, wenn ihr einen eigenen SMB-Server verwenden wollt, müsst ihr den im NAS integrierten erst deaktivieren. Bevor ihr das macht, bietet es sich aber an, die Goodies, die ich erstellt habe, herunter zu laden und auf das NAS in euren Homeordner zu legen und dort zu entpacken.

Das Abschalten des SMB geht in der Oberfläche, in der Systemsteuerung.

2. Entware installieren

Entware ist ein Paketmanager, mit dem ihr über 2500 Pakete mit Tools, Utilities und Anwendungen aus dem Linux-Umfeld sehr einfach installieren und verwalten könnt. Ladet euch das QPKG von hier herunter und zwar das für die Standard Installation. Anschließend installiert ihr es über das App Center im QNAP, indem ihr auf das Symbol oben rechts „manuell installieren“ klickt und das soeben heruntergeladene Entware-Paket auswählt.

Weiterhin benötigt ihr einen ssh-Zugang zu eurem QNAP. Also ab in die Systemeinstellungen -> Netzwerk- und Dateidienste -> Telnet / SSH und dort „SSH-Verbindung zulassen“ aktivieren und bei den Zugangsrechten euren Admin-User (oder den, den ihr als Admin verwendet) auswählen.

Um uns das Leben auf der Konsole im QNAP einfacher zu machen, installieren wir uns mit Entware erst mal zwei Tools und zwar less (zum Anzeigen von Textdateien) und nano (als Editor). Dazu loggt ihr euch via ssh auf dem QNAP ein und gebt folgendes ein:

sudo opkg install less nano

3. Samba-Server installieren

Nun installiert ihr den Samba-Server aus Entware, der zudem auch eine neuere Version mitbringt, als der QNAP-eigene.

sudo opkg install samba4-libs samba4-server samba4-utils

Entware verwendet zum starten von Diensten das Verzeichnis /opt/etc/init.d und die darin enthaltenen Startskripte, die alle mit „S“ als Namen beginnen müssen. Die Skripte werden in SystemV-Init-Manier gestartet, gestoppt, usw, also z.B. mit einem Aufruf von „S91smb start“ oder „S91smb stop“. Entware sorgt dafür, dass bei einem Neustart des NAS die Skripte entsprechend ausgeführt werden, so dass unser eigener Samba-Server auch nach einem Neustart wieder läuft.

Die Konfigurationsdatei des Samba-Servers findet ihr im Verzeichnis /opt/etc/samba/smb.conf. Um diese zu editieren und anzupassen verwendet ihr nano mit Admin-Rechten, also

sudo nano /opt/etc/samba/smb.conf

Wenn ihr euch mit Samba auskennt, könnt euch nun schon an der Konfiguration von Samba austoben. Ich habe aber noch ein paar Goodies für euch.

4. Samba konfigurieren und in QTS einpassen

Damit ihr nicht alles selbst konfigurieren müsst und der Samba-Server auch mit den weiteren Funktionen des QNAP, wie dem Anlegen von Freigabeordnern und der User- und Gruppenrechtverwaltung harmoniert, habe ich ein paar Goodies, die folgendes ermöglichen:

  • vorkonfigurierte smb.conf, die unser ursprüngliches Problem der -rwx------ Rechte löst
  • ein Startskript, dass sich ins QNAP integriert und auch Neustarts „überlebt“
  • ein Skript zur einfachen Verwaltung des Samba-Servers und zur automatischen Integration der Freigabeordner aus dem QNAP
  • automatisches Bekanntgeben von TimeMachine-Volumes via Bonjour, so dass TimeMachine auf dem Mac problemlos aktiviert werden kann und die Volumes sofort sichtbar sind. Die Standardeinstellung des QNAP lässt diese nämlich leider nicht zu.

Die Goodies habt ihr hoffentlich schon im 1. Schritt herunter geladen und in euer Homeverzeichnis gelegt und entpackt. Falls nicht, müsst ihr den QNAP-Samba Server nochmals temporär aktivieren. Keine Sorge, noch kommt der eigene Samba-Server euch nicht in die Quere.

So, nun geht’s ans konfigurieren. Ihr wechselt also in eurer Homeverzeichnis, falls ihr nicht schon dort seid.

Goodie: die smb.conf

Die von mir erstellte smb.conf kopiert ihr nach /opt/etc/samba mit

sudo cp smb.conf /opt/etc/samba

Ihr könnt die natürlich auch nach euren Wünschen anpassen mit

sudo nano /opt/etc/samba/smb.conf

Dabei müsst ihr keinerlei Shares anlegen, da die allesamt mit dem mitgelieferten Verwaltungsskript aus den QNAP Einstellungen der Freigabeordner übernommen werden. Ihr müsst euch also nur mit der [global] section befassen.

Goodie: das Startskript S91smb

Das Startskript S91smb kopiert ihr einfach nach /opt/etc/init.d mit

sudo cp S91smb /opt/etc/init.d

Das starten, stoppen, reloaden usw. erfolgt nur über das Verwaltungsskript

Goodie: das Verwaltungsskript samba4qnap

Mit diesem Skript könnt ihr den soeben installierten Samba-Server verwalten. Wenn ihr das Skript alleine aufruft, also:

./samba4qnap

ohne eine Option anzugeben, wird ein kurzer Hilfetext angezeigt. Ein üblicher Aufruf ist also in der Art

sudo ./samba4qnap OPTION

wobei OPTION eines der folgenden Worte ist:

startstartet den Samba Server
stopstoppt den Samba Server
restartführt einen Neustart (stop -> start) des Server durch
reloadlädt die Konfigurationsdatei smb.conf neu
update liest die Einstellungen der Freigabeordner ein, schreibt die smb.conf,
lädt die Konfiguration neu und aktualisiert die TimeMachine-Bekanntgabe
tmupdateerneuert die TimeMachine-Bekanntgabe
showliest die Einstellungen der Freigabeordner ein und zeigt sie nur an.
statuszeigt den Status des Samba Servers (running / stopped)

Da ihr ja bereits Freigabeordner eingerichtet habt für den QNAP-eigenen SMB-Dienst, reicht es nun aus, wenn ihr den Server startet (start) und die vorhandenen Einstellungen einlest (update), also die beiden Befehle

sudo ./samba4qnap start

sudo ./samba4qnap update

ausführt. Der mit Entware installierte Samba-Server läuft nun und versorgt euch mit den vorhandenen SMB-Freigabeordnern.

Wenn ihr an eurer Konfiguration etwas ändern wollt, dann könnt ihr dies in der [global] Section jederzeit tun. Alle Änderungen, die ihr dort macht werden unverändert bei einem Update übernommen. Änderungen oder Ergänzungen bei den einzelnen Shares werden ebenso übernommen, allerdings solltet ihr die folgenden Einstellungen nicht verändern, da diese aus der QNAP-Oberfläche übernommen werden. Ihr könnt diese also dort verändern. Das betrifft die folgenden Einstellungen: comment, path, browseable, read list, write list, valid users, strict allocate und fruit:time machine. Zudem wird euer Homeverzeichnis nicht mehr mit dem neutralen „home“ angezeigt, sondern mit eurem Account-Namen.

Nach Änderungen reicht es aus, mit sudo ./samba4qnap update die Konfiguration zu aktualisieren und neu einzulesen.

5. Fazit

Die unglückliche QNAP-Konfiguration, die alle Dateien und Ordner immer mit den Rechten -rwx------ versieht ist nun behoben, TimeMachine-Volumes werden endlich korrekt im LAN bekannt gegeben und angezeigt und ihr habt weiterhin die volle Kontrolle über die Konfiguration über den selbst installierten Samba-Server und könnt auch weiterhin die Funktionen der QNAP-Oberfläche für die Freigaben und Rechteverwaltung nutzen.

Also dann, viel Spaß mit eurem neuen Samba Server.

Update

27. Jan. 2022: Ich habe die Tools ein kleinwenig ergänzt. Nun ist auch die TimeMachine-Bekanntgabe über Bonjour enthalten und diese bleibt auch nach einem Neustart des NAS erhalten und wird nicht mehr gelöscht. Ladet euch die Goodies einfach erneut herunter und kopiert die Datei S91smb wie oben beschrieben und ersetzt die Datei samba4qnap einfach mit dieser neuen Version.

Kategorien: macOSNASQNAP

1 Kommentar

Peter · 17. Oktober 2022 um 12:59

Wirklich toll, welche Arbeit du in diesen Workaround gesteckt hast und Danke fürs Veröffentlichen. Schade, dass es bislang so wenig Feedback gegeben hat. Aber vielleicht gibt es stille Leser, die ihn nutzen.

Ich hatte zunächst ein paar Probleme:
1.) Entware sollte man als User Admin benutzen, der gemäß aktueller Empfehlung von QNAP aus Sicherheitsgründen allerdings deaktiviert sein sollte. Bei anderen Usern fehlt der Pfad zu Entware und opkg lässt sich nur mit kompletter Pfadangabe starten.
2.) Kein wirkliches Problem, aber less war bei mir schon installiert (QuTS Hero 5.0.1).
3.) samba4qnap show und samba4qnap update hingen bei mir in einer Endlosschleife. Grund war, in der Funktion gen_smbconf prüfst du auf das Zeichen “[“, um das Ende des [global] Blocks in der smb.conf zu finden. In deiner smb.conf gibt es aber nur einen [global] Block und somit auch kein [ Zeichen, was zu der Endlosschleife führt. Einfach ein [ ans Ende der smb.conf behebt das Problem.
4.) Ich konnte mich zunächst mit keinem User per SMB anmelden. Grund war, du benutzt /opt/etc/samba/smbusers für die erlaubten User. Diese Datei existierte bei mir gar nicht. Ditto. die Passwortdatei /opt/etc/samba/smbpasswd. Warum nutzt du nicht die vorhandenen Dateien in /etc/config? So muss man die Benutzerverwaltung für SMB nochmals separat im Terminal machen und kann nicht das QNAP Webinterface benutzen.
5.) Der [global] Block in deiner mitgelieferten smb.conf hat nur 32 Zeilen. Der originale [global] Block von QNAP hat 85 Zeilen. Das beunruhigt mich etwas. Ich denke der [global] Block von QNAP wird dynamisch zusammengebaut in Abhängigkeit von dem, was sonst noch im System aktiviert ist. Vielleicht habe ich einfach mehr Zeugs aktiviert als du. Meine Befürchtung ist, dass manche Funktionen über SMB nicht mehr funktionieren mit deinem kurzen [global] Block.
Wäre es nicht besser gewesen, beim Zusammenbau des smb.conf den originalen [global] Block komplett zu übernehmen und nur die Parameter die fehlen zu ergänzen bzw. die mit geändertem Wert zu ersetzen? Oder geht das nicht auf Grund der unterschiedlichen SMB Versionen?
6.) Bei den Shares machst du es ja schon so, dass du die originalen Parameter übernimmst. Allerdings nur die Folgenden:
comment
path
browsable
read list
write list
valid users
strict allocate

In meiner originalen smb.conf gibt es aber viel mehr Parameter in den Shares. D.h. es gilt das Gleiche wie im [global] Block. Evt. funktioniert das eine oder andere Feature jetzt nicht mehr über SMB.

Vielleicht sind die Unterschiede aber auch nur deshalb vorhanden, weil wir unterschiedliche Versionen von QTS/QuTS Hero im Einsatz haben.

Welche Vorgehensweise würdest du mir raten, die Parameter in meinem smb.conf speziell an mein System anzupassen?
Wie bist du vorgegangen bei der Auswahl deiner Parameter?

Schreibe einen Kommentar zu Peter Antworten abbrechen

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte löse die kleine Aufgabe, um den Kommentar abzuschicken. *