SMB vs NFS4 und Nutzerrechte

Probleme mit Samba, NFS, FTP und Co.
Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 04.12.2019 07:06:10

Hi,

ich plane meine Synology NAS durch einen Debianserver zu ersetzen. Ein zentraler Punkt der Konfiguration ist daher für mich die Auswahl und die vernünftige Einrichtung eines Protokolls zum Dateizugriff und die aus meiner Sicht dazugehörenden Konfiguration der Nutzer, Dateibesitz und Zugriffsrechte. Auch wenn der Server noch nicht ganz durchgeplant und erst recht nicht vorhanden ist, würde ich gerne jetzt schon überlegen, wie ich den am besten konfiguriere.

Ich fange mal damit an, wie der jetzige Zustand auf der NAS ist. Auf der NAS habe ich eine Hand voll "Geteilter Ordner" und neben root zwei Typen von Benutzern; Benutzer wie mich selbst, die diese Ordner mounten und mit Daten füttern, und Benutzer auf der NAS, die meist rein für das Lesen für Dockerdienste angelegt wurden. Der Zugriff wird auf dem Level des "Geteilten Ordners" geregelt, indem jedem Nutzer Lese-, Schreib- oder kein Zugriff gewährt wird. Alle meine Rechner laufen mit Linux. Ich habe mich damals trotzdem für SMB entschieden. Die ganzen Abwägungen sind mir nicht mehr bewusst, aber ich meine der Hauptgrund war, dass SMB als sicherer gilt.

Jetzt stehe ich vor der Herausforderung, dass ich nicht nur irgendwie die Funktionalität hingefrickelt bekommen wll, sondern dass ich gerne bewusst eine Konfiguration erstellen möchte. Folgende Überlegungen und Fragen stellen sich mir dazu:
1. Da ich weiterhin zwei Klassen von Benutzern habe, die einen fürs Einbinden, Lesen und Schreiben, die anderen für Serverdienste, dachte ich mir, ich erstelle erstere ruhig ohne eigenes /home Laufwerk, da diese nur die geteilten Ordner auf dem Datenpool mounten sollen. Letztere könnten vlt. ein eigenes /home gebrauchen, damit man die Dockerconfig dort speichern kann. Was meint ihr dazu?
2. Ich weiß ehrlich gesagt nicht, wie ich die Zugriffsberechtigungen vernünftig hinbekomme. Fast alle Nutzer müssen letzten Endes den Datenpool mounten. Aber wie ich dann sicherstelle, dass die nur auf die ausgewählten Ordner Zugriff haben, weiß ich nicht. Vielleicht ist dieser Synology Designansatz aber auch eher windowsartig und so nicht vernünftig zu realisieren?
3. Ich könnte der Einfachheit halber sagen, ich bleibe einfach bei Samba. Dafür habe ich mir systemd .mount und .automount files ausgestaltet und ich kenne das bereits besser. Auf der anderen Seite, vlt. ist NFS4 ja mittlerweile für mein Vorhaben die bessere Wahl. Außerdem habe ich die Serverseite von Samba bislang nur über die Synology GUI eingestellt und bis heute sind mir die Auswirkungen manches Häckchens immer noch nicht ganz klar, was mir ehrlicherweise auch nicht so ganz behagt.

Ich hoffe, ihr habt ein paar Tipps, Anregungen oder auch Leseempfehlungen, damit ich für meinen Usecase eine sinnvolle Konfiguration entwickeln kann. Danke schon mal fürs Lesen!

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 04.12.2019 10:46:23

Simaryp hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 07:06:10
3. Ich könnte der Einfachheit halber sagen, ich bleibe einfach bei Samba. Dafür habe ich mir systemd .mount und .automount files ausgestaltet und ich kenne das bereits besser.
Das Problem wird sein, dass das, was Du willst... also die Anwendung benutzerbezogener Userrechte auf die Freigabe beim Mounten ... damit nicht gelingen wird. Die Units werden beim Start des Systems gemountet oder auch mit Root-Rechten on-the-fly. Dabei ist aber die Gemeinsamkeit, dass die Mounts mit den (quasi persistenten) Rechten durchgeführt werden, wie sie in den Units statisch eingetragen sind. Mit anderern Worten: nix mit userindividuellen Rechten auf der Samba-Ressource, weil der Samba-Server immer nur den einen und immergleichen User sieht, der in der Mount-Unit eingetragen ist.

Das Problem kann man lösen, indem man anstatt statische Mount-Units instantiierte Service-Units verwendet, die zwar mit root-Rechten gestartet werden, aber als Instanz-Merkmal den angemeldeten User verwenden können. Damit könnte der Mount auf dem Samba-Server explizit mit den Rechten des angemeldeten Users durchgeführt werden, wodurch auf der Freigabe des Servers 100% der individuellen User- und Gruppenrechte greifen würden. Ich habe das hier bei mir so mit Samba gelöst... wenn sich ein User am System anmeldet, werden genau die Laufwerke gemountet, die er haben soll und alle Zugriffe sind nur mit seinen persönlichen Rechten ausgestattet.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von jph » 04.12.2019 18:13:44

Ich habe vor längerer Zeit vor der gleichen Herausforderung, allerdings mit einem selbstgetrickten, Debian-basierten Fileserver, gestanden. Ich habe das zum Anlass genommen, Samba aufs Altenteil zu schicken und durch NFSv4 samt Kerberos zu ersetzen. Funktioniert traumhaft mit systemd-Automounts. Kerberos erschien mir anfangs leicht übertrieben, aber man kann da schön weitere Dienste (ssh, PostgreSQL, etc.) integrieren, so dass sich der Mehraufwand im Nachhinein bezahlt gemacht hat.

Schau mal ins Wiki, sofern noch nicht geschehen: Wiki-Artikel zum Thema NFSv4-Mini-Howto

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 04.12.2019 18:33:17

jph hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 18:13:44
Ich habe das zum Anlass genommen, Samba aufs Altenteil zu schicken und durch NFSv4 samt Kerberos zu ersetzen.
Und damit funktioniert es, dass die gleiche 'Freigabe' unterschiedliche Rechte der Client-User handhabt, die sich auch noch auf unterschiedlichen Rechnern anmelden können? Also egal, ob sich User Fritz an Rechner A oder B anmeldet, er hat immer Schreibrechte auf eine bestimmte Freigabe. Und User Otto kann sich ebenfalls an Rechner A und B anmelden, hat aber auf die gleiche Freigabe nur Leserechte. Geht sowas? Musstest Du dafür die UIDs auf allen Systemen synchronisieren?

Ich habe mal das Wiki überflogen, aber in der Mount-Unit sehe ich nichts userindividuelles.... :roll: ... wie würde man die von mir beschriebene Problemstellung lösen?

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von jph » 04.12.2019 18:54:42

TomL hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 18:33:17
Und damit funktioniert es, dass die gleiche 'Freigabe' unterschiedliche Rechte der Client-User handhabt, die sich auch noch auf unterschiedlichen Rechnern anmelden können? Also egal, ob sich User Fritz an Rechner A oder B anmeldet, er hat immer Schreibrechte auf eine bestimmte Freigabe. Und User Otto kann sich ebenfalls an Rechner A und B anmelden, hat aber auf die gleiche Freigabe nur Leserechte. Geht sowas? Musstest Du dafür die UIDs auf allen Systemen synchronisieren?
Das sind ja gleich zwei Fragen auf einmal… :-)

Zur ersten Frage: ja, das geht. NFSv4 exportiert Dateisysteme (bzw. Teile davon) und es werden die ganz normalen Rechte für Ordner und Dateien abgefragt. Bei der Definition eines Exports kann man nur Clients, aber keine Nutzer angeben. Wenn also Otto Dinge nur lesen können soll, die Fritz auch schreiben darf, dann musst du dies über Rechte abbilden. Nebeneffekt: ob die Benutzer Fritz und Otto lokal auf dem Server angemeldet sind oder ob sie dessen Dateien über NFSv4 mounten, macht keinen Unterschied hinsichtlich der Zugriffsrechte.

An einem Export kann man bestimmte Einschränkungen vorgeben, u.a. Schreibschutz und das Squashing von Zugriffen auf andere User. Letzteres empfiehlt sich bspw. für root oder für quasi-öffentliche Exporte, die jeder lesen und schreiben darf.

Zur zweiten Frage: die UIDs muss man unter NFSv4 nicht mehr synchronisieren, sofern alle Rechner in der gleichen Domain stecken. Bei mir daheim stecken sie alle in der Domain „fritz.box“ (wird vom gleichnamigen Router vorgegeben), d.h. die Rechner haben FQDN nach dem Schema proliant.fritz.box (mein Fileserver), t460s.fritz.box (der Laptop, auf dem ich gerade tippe).

Mit NFSv4 kann man übrigens Zugriff mit und ohne Kerberos mischen. Der Lesezugriff auf dezentrale Sicherungskopien von Medien ist hier ohne Kerberos möglich, womit Kodi (wohnt auf einem Raspberry Pi 2 hinterm Fernseher) glücklich ist. Der Laptop weist sich über Kerberos aus und darf auch schreiben.

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 04.12.2019 19:12:08

jph hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 18:54:42
Zur ersten Frage: ja, das geht. NFSv4 exportiert Dateisysteme (bzw. Teile davon) und es werden die ganz normalen Rechte für Ordner und Dateien abgefragt. Bei der Definition eines Exports kann man nur Clients, aber keine Nutzer angeben. Wenn also Otto Dinge nur lesen können soll, die Fritz auch schreiben darf, dann musst du dies über Rechte abbilden. Nebeneffekt: ob die Benutzer Fritz und Otto lokal auf dem Server angemeldet sind oder ob sie dessen Dateien über NFSv4 mounten, macht keinen Unterschied hinsichtlich der Zugriffsrechte.
Das ist jetzt echt ein wenig kompliziert nachzuvollziehen... ich frag deshalb lieber noch mal. :roll: Ich kann auf dem Server für Otto und Fritz Linux-Rechte einrichten. Ich weiss gerade nur nicht, wie das zu unterscheiden geht, dass der eine auf ein bestimmtes Verzeichnis RW hat und der andere nur R. Nehmen wir an, das Verzeichnis der Freigabe gehört mir als Admin und ich erlaube der Gruppe "User", die Otto und Fritz enthält, dieses Verzeichnis zu lesen. Wie bekommt denn Fritz jetzt darauf Schreibrechte. Oder anders gedreht, ich erlaube der Linux-Gruppe RW, wie verhindere ich, dass Otto Daten verändern kann? Eigentlich müsste ich ja 2 Gruppen haben, bei der die einen Gruppenmitglieder RW haben, und die andere Gruppe nur "R". Wie funktioniert das mit NFS, wenn man die Exports nicht den Usern individuell zuweisen kann?

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 04.12.2019 19:43:31

Hier habe ich wohl ein spannendes Thema aufgeworfen. Wahrscheinlich muss ich erst mal tatsächlich ein bisschen Lesen, um der Diskussion folgen zu können.

Ich denke, ich sollte vielleicht noch ein paar Details ergänzen, falls die wichtig sind. Geplant ist ZFS on Linux für den Datenpool zu nutzen. Meine Berechtigungen sind auch nicht super komplex, weil es nicht kreuz und quer über verschiedene Ebenen geht, sondern von einer Hand voll Hauptordnern alle Dateien und Unterordner die gleichen Berechtigungen und Besitzer haben. Wichtig ist mir zum Beispiel, dass der lokale Nutzer für zum Beispiel Emby keine Schreibrechte bekommt und tatsächlich nur Medienverzeichnisse lesen kann.

Ich meine neben der Sicherheit der Übertragung war wohl auch das Thema Dateibesitz ein Punkt, wenn ich mich grob erinnere. Mit mount und automount meinte ich zur Klarstellung die units auf meinen Clients, die über CIFS die Verzeichnisse einbinden. Bislang wurden dann alle Besitzverhältnisse über die Ameldedaten des der Mountunit des Clients gelöst.
Die Files sehen so aus:

Code: Alles auswählen

3. `$ sudo nano /etc/systemd/system/mnt-Share.mount`
[Unit]
Description=cifs mount script
Requires=network-online.target
After=network-online.service

[Mount]
What=//xxx.xxx.xxx.2/Share
Where=/mnt/Share
Type=cifs
Options=credentials=/home/user/.smbcredentials,vers=3.0,uid=1000,gid=1000

[Install]
WantedBy=multi-user.target

4. `$ sudo nano /etc/systemd/system/mnt-Share.automount`
[Unit]
Description=cifs automount script
Requires=network-online.target
After=network-online.service

[Automount]
Where=/mnt/Share
TimeoutIdleSec=5min

[Install]
WantedBy=multi-user.target

Aber wie gesagt, wenn ich das eleganter mit NFSv4 hinbekomme und ich eine sicheres und vernünftiges System hinbekomme, dann wäre ich damit auch zufrieden.
Wichtig ist mir halt die klare Rechteregelung und dass es nicht zu Chaos kommt, weil dann plötzlich UIDs vom Client in den Dateien vom Server stehen, die nicht zusammen passen. Oder dass es eine Ausfallsicherheit gibt, dass es nicht zu unbemerkten Dateibeschädigungen kommt, falls ein Client abschmiert, während eine Datei geöffnet ist usw.

Neben meinen Arch Rechnern, greift noch ein HTPC mit Libreelec auf den Server zu. Lokal auf dem Server soll Emby und Duplicati lesenden Zugriff auf das ZFS Volume haben. Vlt. noch irgendwas anderes, um lokale USB Sicherungen zu machen.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von jph » 04.12.2019 20:08:01

TomL hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 19:12:08
Das ist jetzt echt ein wenig kompliziert nachzuvollziehen... ich frag deshalb lieber noch mal. :roll: Ich kann auf dem Server für Otto und Fritz Linux-Rechte einrichten. Ich weiss gerade nur nicht, wie das zu unterscheiden geht, dass der eine auf ein bestimmtes Verzeichnis RW hat und der andere nur R. Nehmen wir an, das Verzeichnis der Freigabe gehört mir als Admin und ich erlaube der Gruppe "User", die Otto und Fritz enthält, dieses Verzeichnis zu lesen. Wie bekommt denn Fritz jetzt darauf Schreibrechte. Oder anders gedreht, ich erlaube der Linux-Gruppe RW, wie verhindere ich, dass Otto Daten verändern kann? Eigentlich müsste ich ja 2 Gruppen haben, bei der die einen Gruppenmitglieder RW haben, und die andere Gruppe nur "R". Wie funktioniert das mit NFS, wenn man die Exports nicht den Usern individuell zuweisen kann?
Die Beschränkung liegt nicht in NFSv4, sondern in den eher schlichten POSIX-Berechtigungen, die Linux von Haus aus mit sich bringt. Deinen Anwendungsfall wirst du auch lokal nur mit ACLs lösen können. Damit habe ich aber keine Erfahrung.

Für NFSv4 gibt es gleichfalls ACLs. Da gab es schon mal einen Thread zu: viewtopic.php?t=174609. Aber damit habe ich auch keine Erfahrung (und, zugegebenermaßen, bis vor wenigen Minuten nicht gewusst, dass es das gibt :-) ).

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 04.12.2019 20:10:56

jph hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 20:08:01
Deinen Anwendungsfall wirst du auch lokal nur mit ACLs lösen können. Damit habe ich aber keine Erfahrung.
Ich habs nicht gewusst, aber befürchtet. Und weil ich mit ACLs nur schlechte Erfahrungen gesammelt habe, hat sich diese Überlegung für mich nun wohl erledigt.
jph hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 20:08:01
Aber damit habe ich auch keine Erfahrung (und, zugegebenermaßen, bis vor wenigen Minuten nicht gewusst, dass es das gibt
Das interpretiere ich dann mal so, dass Du individuelle Rechte auf Mount-Points, dynamisch zur Anmeldung des Users durchgeführt und mit dessen Rechte versehen, auch noch nicht gemacht hast. Also so, dass zur Anmeldung gemountet wird und zur Abmeldung umounted, und jeder User hat seine individuellen Rechte, auch wenn es sich für alle User um die gleiche Freigabe handelt.... samba kann das so handhaben.

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Tintom » 04.12.2019 20:48:24

TomL hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 20:10:56
samba kann das so handhaben.
Aber samba greift doch auch "nur" auf ACL zurück, oder irre ich mich da?

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 04.12.2019 21:00:06

Tintom hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 20:48:24
Aber samba greift doch auch "nur" auf ACL zurück, oder irre ich mich da?
Kann man machen, muss man aber nicht. Samba kann userindividuell (oder auch nach Gruppe) vorhandene höhere Linuxrechte beschränken. Das geht auch ohne ACL. Dazu muss der Mount der Freigabe (unter options) nur halt explizit mit username/pwd des betroffenen Users erfolgen.

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 05.12.2019 07:34:56

So, mit dem Wiki-Eintrag zur NFS Einrichtung, kann ich etwas besser der Diskussion folgen. Aber auch damit ist das ganze noch etwas zu schnell für mich in Detaillösungen rein gegangen. Ich merke auch, dass je konkreter es wird, ich das Gefühl habe noch mal grundlegender ansetzen zu müssen.

Ich versuche also noch mal ein bisschen grundlegender mein Verständnis von meiner aktuellen Situation darzustellen und was ihr mir versucht habt zu erklären.
Ich habe zur Zeit vier Clients, die aktuell Samba nutzen. Diese haben alle einen root mit UID 0 und GID 0 und die arch Rechner haben jeweils noch einen User mit UID 1000 und GID 100 (halt default). Bei zwei Rechnern ist der Benutzername sogar identisch. Auf dem Server habe ich ebenfalls Nutzer, die zum Teil gleiche zum Teil unterschiedliche Namen und auf jeden Fall unterschiedlich UIDs haben.
Bei den Sambamounts gebe ich in der systemd-Unit die credentials des Users auf der Serverseite an. Meine systemd-Units und die fstab werden beim Start der Clients ausgeführt, weswegen es auf den Clients keine Unterscheidung gibt, wer sich anmeldet. Da ich bislang nur Einzelnutzerrechner habe, ist das für mich egal. Durch die Anmeldung mit den Benutzernamen ist es total egal, wie Benutzername und die IDs auf Clientseite sind. Für die Rechte und Besitzer auf Serverseite ist einzig relevant, mit welchen Anmeldedaten der Mount ausgeführt wurde.
Die Linux Dateirechte funktionieren so, dass es eine Regel für den Besitzer, für die Gruppe und für alle anderen gibt, oder? Wobei root da irgendwie immer drüber steht oder nicht? Wenn man jetzt schnell mal in die Situation kommt, dass zwei verschiedene Nutzer lesen und Schreiben dürfen sollen, dann könnte man das über die Gruppe lösen. Wenn aber in der Gruppe jemand drittes ist, dann kann der auch automatisch schreiben. Um das zu verhindern, muss man dann ACL nutzen, was die Synology NAS wohl tut, richtig?

@jph: Wenn ich das richtig verstanden habe, dann würde das bei NFS4 so laufen. Ich binde mein ZFS-Volume im Server auf /srv ein. Dann habe ich dort meine handvoll Ordner. Dann kann über die export-Datei nicht mit Bezug auf die User, sondern mit Bezug auf die Rechner festlegen, wer was lesen und schreiben darf, korrekt? Weil in meinem Fall keine Mehrfachanmeldung genutzt wird, wäre das im Prinzip identisch. Ich habe allerdings noch überhaupt nicht verstanden, wie dann auf dem Server die Rechte abgebildet werden. In meinem Fall wird Rechner A von Alice genutzt und Rechner B und C von Bob. Rechner D ist egal, weil der eh maximal lesen soll. Jetzt würde ich gerne Rechner A auf den einen Serverbenutzer mappen und Rechner B und C auf einen zweiten Benutzer. Es gibt bei mir auch zum Beispiel einen Fotoordner, da schreiben Alice und Bob gemeinsam rein. Beide soll lesen und schreiben dürfen, auch die Dateien des jeweils anderen.
Wie sieht das mit den mounts aus, wenn ich mich über VPN in mein Heimnetzanmelde? Dann bekomme ich vermutlich eine dynamische IP. Habe das noch nie überprüft. Oder erkennt NFS das rein am hostname, wer was darf und nicht an der IP?
Brauche ich überhaupt ein Serverseitiges Benutzerpendant für meine Clients? Und wie sehen die Standardzugriffsrechte für /srv auf dem Server aus? Können die Benutzer, die ich für meine Serverdienste anlege dort Lesen und/oder Schreiben oder kann das zum Teil nur Root?
Wenn ich Kerberos nicht nutze, dann ist mein Server recht offen und angreifbar für Rechner, die sich in meinem Heimnetzanmelden oder?

Ich würde auch gerne noch ein weiteres Fass aufmachen, weil ich glaube, dass dieses der Ursprung für ein sehr unschönes Problem in der Vergangenheit gewesen ist; nämlich Dateimetadaten. Konkretes Beispiel ist mein gescheiterter Versuch mal eine Software zum Verwalten meiner Fotos zu nutzen. Das ist schon daran gescheitert, weil in den frühen Nullern keine Sau die Datumseingabe an der Kamera richtig eingestellt hat. Dadurch sind die ganzen EXIF Daten der damaligen Fotos reinstes Chaos. Ich habe aber damals auch festgestellt, dass bei ein paar Fotos, die ich gemacht habe das Aufnahmedatum nicht stimmen kann. Ich kann nicht mehr rekonstruieren, woran das genau gelegen hat. Ich habe damals sowohl Windows als auch Linux produktiv genutzt und meine Backups liefen immer über einfaches kopieren auf eine USB Platte und beim neu einrichten über das Rückkopieren. Ich nehme mal an, dass da einfach irgendeine Inkonsistenz im Metadatenmanagement von Windows und Linux dazu geführt hat, dass ein Änderungsdatum zum Erstelldatum oder Aufnahmedatum geworden ist, ich weiß es wirklich nicht. Jedenfalls bin ich für das Thema sensibilisiert und mir wäre es wichtig, dass ich nicht wieder in so ein Problem renne. Gibt es da bei NFS oder SMB etwas zu beachten?

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von jph » 05.12.2019 18:55:01

Simaryp hat geschrieben: ↑ zum Beitrag ↑
05.12.2019 07:34:56
Ich würde auch gerne noch ein weiteres Fass aufmachen
Dann trenn diesen Gesamtthread aber bitte vorher in thematisch geschnittene Einzelthreads auf. Ich verliere den Überblick :-)

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 05.12.2019 20:48:55

Naja, das viel mir gerade noch dazu ein und ich dachte, es passt thematisch dazu.
Ich habe das schon wegen des Themas Benutzereinrichtung gedacht. Aber aus meiner Sicht sind Netzlaufwerke extrem mit der Benutzersteuerung und auch mit Fragen nach Dateibesitz, Dateimetadaten etc. verknüpft. Am Ende geht es dann um die eine Mountoption, die großes Chaos verhindert. Oder ein Problem ist nur bei einem Netzwerkdienst vorhanden und bei dem anderen taucht es nicht auf.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von jph » 05.12.2019 21:02:21

Ich sehe hier mindestens drei Themen:
  • Wie halte ich die Dateien der Nutzer auseinander? Tun es klassische Berechtigungen oder braucht man dafür ACLs?
  • Falls ACL benötigt werden: wie geht man damit unter NFSv4 um?
  • Wie prüft der NFS-Server die Identität des Clients?

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von weshalb » 05.12.2019 21:34:32

Simaryp hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 07:06:10
Aber wie ich dann sicherstelle, dass die nur auf die ausgewählten Ordner Zugriff haben, weiß ich nicht.
Über Rechtevergabe auf die Ordner, Gruppenzugehörigkeiten der User und Rechtebeschränkung in der smb.conf.

Vielleicht reicht es, um ACL zu umgehen, eventuell nur die Struktur bzw. den Aufbau etwas anders anzulegen. Schau mal hier:

viewtopic.php?f=9&t=169469&p=1172904#p1172904

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 05.12.2019 23:44:22

jph hat geschrieben: ↑ zum Beitrag ↑
05.12.2019 21:02:21
Ich sehe hier mindestens drei Themen:
  • Wie halte ich die Dateien der Nutzer auseinander? Tun es klassische Berechtigungen oder braucht man dafür ACLs?
  • Falls ACL benötigt werden: wie geht man damit unter NFSv4 um?
  • Wie prüft der NFS-Server die Identität des Clients?
Ja und der Wunsch, dass die Dateien konsistent bleiben sollen. Wenn ich eine Datei auf nem Client erstelle und dann auf den Server schiebe, sollen nicht irgendwelche Metadaten verwurschtelt werden. Ich denke wie gesagt, dass die Themen eng verflochten sind.
Ich denke ACL eher nicht. Habe mir mal den Archwiki Artikel dazu durchgelesen. Das klang so, als gäbe es da auch Beschränkungen, wie viele Dateien man mit ACL definieren kann und Performance Probleme usw. Ich glaube, ich komme auch ohne aus, da ich unterhalb der einzelnen Unterordner nicht für einzelne Dateien andere Regeln brauche. Lediglich das Beispiel mit den Fotos ist mir nicht klar. Wenn zwei Clients innerhalb des gleichen Ordners arbeiten können sollen, dann müsste ich ja mindestens ug=rwx setzen. Sonst kann der eine die Dateien des anderen nicht bearbeiten. Aber dann kann ja auch jeder Nutzer der users Gruppe des Servers darauf zugreifen oder?

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 05.12.2019 23:44:44

weshalb hat geschrieben: ↑ zum Beitrag ↑
05.12.2019 21:34:32
Simaryp hat geschrieben: ↑ zum Beitrag ↑
04.12.2019 07:06:10
Aber wie ich dann sicherstelle, dass die nur auf die ausgewählten Ordner Zugriff haben, weiß ich nicht.
Über Rechtevergabe auf die Ordner, Gruppenzugehörigkeiten der User und Rechtebeschränkung in der smb.conf.

Vielleicht reicht es, um ACL zu umgehen, eventuell nur die Struktur bzw. den Aufbau etwas anders anzulegen. Schau mal hier:

viewtopic.php?f=9&t=169469&p=1172904#p1172904
Danke, schaue es mir morgen an.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von weshalb » 06.12.2019 10:26:20


TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 06.12.2019 11:40:43

Simaryp hat geschrieben: ↑ zum Beitrag ↑
05.12.2019 23:44:22
Wenn zwei Clients innerhalb des gleichen Ordners arbeiten können sollen, dann müsste ich ja mindestens ug=rwx setzen. Sonst kann der eine die Dateien des anderen nicht bearbeiten. Aber dann kann ja auch jeder Nutzer der users Gruppe des Servers darauf zugreifen oder?
Man kann das mit Samba wunderbar begrenzen, dass auf eine Freigabe eine Gruppe lesen darf, eine andere schreiben. Mit simplen "binds" auf dem Sambaserver kann man auch problemlos 2 Mountpoints auf die gleiche physische Ressource einrichten, deren Rechte wiederum kompett unterschiedlich sein können. Man muss nur darauf achten, dass User nicht gleichzeitig in divergierenden Gruppen eingetragen sind.

ALCs sind meiner Meinung nach perfekt geeignet, eine weitestgehend statische Verzeichnis-Klassen-Hierarchie in Unternehmen abzubilden.... vom Hauptabteilungsleister über den Abteilungsleiter, zum Teamleiter, zum Mitarbeiter.... wo dann der Mitarbeiter nur seine Arbeitsumgebung sehen darf... und je weiter es diszipinarisch nach oben geht, um so weitreichender sind die jeweiligen RW-Rechte. Hier bei mir zuhause haben sich die ALCs vor einem anderen Hintergrund als Katastrophe erwiesen. Ich werde die nie wieder einsetzen.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von weshalb » 06.12.2019 16:51:34

TomL hat geschrieben: ↑ zum Beitrag ↑
06.12.2019 11:40:43
ALCs sind meiner Meinung nach perfekt geeignet, eine weitestgehend statische Verzeichnis-Klassen-Hierarchie in Unternehmen abzubilden.... vom Hauptabteilungsleister über den Abteilungsleiter, zum Teamleiter, zum Mitarbeiter.... wo dann der Mitarbeiter nur seine Arbeitsumgebung sehen darf... und je weiter es diszipinarisch nach oben geht, um so weitreichender sind die jeweiligen RW-Rechte. Hier bei mir zuhause haben sich die ALCs vor einem anderen Hintergrund als Katastrophe erwiesen. Ich werde die nie wieder einsetzen.
Wenn es statisch ist, kann man das nicht auch gleich mit einfachen Gruppen/Userrechten auf einer festdefinierten Ordnerstruktur ebenfalls ganz prima erledigen? Die Useranzahl pro Gruppe wird, umso höher man kommt, eben immer kleiner.

Meistens ist es doch eher so, dass man je nach Position nur in bestimmte Ordner mit Recht xyz darf.

Das wird selbst auf den mir bekannten MS Servern so gehandhabt und so sehr fein runtergebrochene Userrechte sind mir tatsächlich noch nicht untergekommen.

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 06.12.2019 18:29:30

weshalb hat geschrieben: ↑ zum Beitrag ↑
06.12.2019 16:51:34
Wenn es statisch ist, kann man das nicht auch gleich mit einfachen Gruppen/Userrechten auf einer festdefinierten Ordnerstruktur ebenfalls ganz prima erledigen? Die Useranzahl pro Gruppe wird, umso höher man kommt, eben immer kleiner.
Aber allein mit Linuxrechten nur unzureichend, wenn es verschiedene Gruppen-Rechte auf eine Ressource gibt. Wenn überhaupt, dann vielleicht multiple binds, aber da weiss ich gerade gar nicht, ob 'binds' überhaupt eigene Rechte haben können. Ohne Samba und ohne 'binds' geht sowas imho nur mit ACLs.
Meistens ist es doch eher so, dass man je nach Position nur in bestimmte Ordner mit Recht xyz darf.
Ja, stimmt... meistens... im Regelfall sollte man damit klar kommen. Aber wie gesagt, Samba handhabt auch exotische Anforderungen. Das muss man dann von Fall zu Fall abwägen. Für die Frage Samba oder NFS ist allenfalls noch die Frage relevant, ob Windows-Clients auf die Freigabe zugreifen müssen. Ich weiss nicht, ob Windows mittlerweile NFS als Treiber implementiert hat... ist zu lange her bei mir mit Windows, damals ging das jedenfalls nicht. Weiss Du das?
Das wird selbst auf den mir bekannten MS Servern so gehandhabt und so sehr fein runtergebrochene Userrechte sind mir tatsächlich noch nicht untergekommen.
Ich hatte das Problem beim automatischen Verschieben von Dateien.... aus einem Verzeichnis mit Änderungsrecht in eines mit Nur-lesen-Recht. Da wurden die ACLs mitkopiert, was in einem Zeitraum zu einem Integritäts-Verlust eines gewissen Datenstandes geführt hat.. da wurde geändert, was nicht geändert werden durfte, weil die ACLs das quasi versteckt erlaubt haben. Wie gesagt, für alles "statisch am ort" sind ACLs sicher eine gute Wahl.... hier bei mir ging das jedoch gar nicht.

Soweit ich mich erinnere, haben damals unter Windows Dateien die Rechte des Verzeichnisses geerbt, solange einer Datei nicht explizit eigene Rechte vergeben wurden. Und beim Kopieren/Verschieben der Datei, hat sie einfach die Rechte des neuen Verzeichnisses geerbt, solange sie eben keinen expliziten Rechte mitgebracht hat. Aber auch das ist jetzt eine nur eher vage Erinnerung.... Windows liegt für mich zu lange zurück.... :roll:
Zuletzt geändert von TomL am 06.12.2019 18:33:48, insgesamt 1-mal geändert.

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 06.12.2019 18:33:44

Ich habe diesen Thread hier gelesen, in dem TomL schon mal viel geholfen hat: viewtopic.php?t=163818
Die Idee, durch mount --binds die Zugriffe für Samba zu verändern ist schon mal interessant. Allerdings ist es unter umständen immer noch kompliziert, wie ich den Zugriff der Nutzer auf dem Server dann regeln kann.

Diesen Post von weshalb viewtopic.php?t=163818 finde ich auf den ersten Blick noch spannender. Wenn ich einfach für jeden meiner Hauptordner eine extra Gruppe anlege und jeweils die Benutzer die Zugriff haben sollen den Gruppen hinzufüge, dann kann ich mit 770 schon mal erreichen, dass ich selektieren kann, dass nur die gewünschten Nutzer Lesen und schreiben können und das auch auf Dateien, die Ihnen nicht gehören.

Vielleicht mache ich das ganze nochmal etwas konkreter. Ich werde auf dem ZFS-volume unter anderem folgende Ordner haben:
Media, Fotos, Temp, Hänsel und Gretel (Ich hoffe ich finde hier die Brotkrumen wieder ^^).
Es gibt bei mir im Heimnetzwerk zur Zeit zwei natürliche Nutzer, Hänsel und Gretel, dann noch nen HTPC. Auf dem Server brauche ich dann noch einen Nutzer für Dockercontainer. Da bei Docker ja sowieso explizit gemountet werden muss, brauche ich nicht für jeden Dienst nen extra Nutzer. Ich brauche also
die Benutzer Hänsel, Gretel, HTPC und Docker. Hänsel und Gretel sind nur für die Nutzer. Die Rechte kann ich dann wie folgt abbilden:
* Hänsel und Gretel: In den Gruppen Hänsel und Gretel wären nur jeweils diese Benutzer und es wäre egal, ob ich 770 oder 700 mache.
* Media: Wird von Hänsel verwaltet, aber Gretel und Docker sollen lesen können. Wenn ich sicherstelle, dass alle Files und Ordner Hänsel gehören, dann kann ich zur Gruppe Media diese drei Nutzer zufügen und das mit 740 lösen.
* Fotos und Temp: Dürfen Hänsel und Gretel nutzen und sollen auch die Dateien komplett nutzen können. Das erreiche ich, indem ich initial alle Files und Ordner Hänsel zuordne und in den Gruppen Temp und Fotos Hänsel und Gretel sind und die Rechte auf 770 setze.

Lediglich beim Docker für Duplicati müsste ich noch mal überlegen, ob ich dem root zuordne, damit er von allen Files Backups machen kann und die auch zurückspielen kann. Das ganze scheint auf den ersten Blick auch bei weiteren Nutzern (das Kind möchte bestimmt später auch mal was mit Rechnern machen) einfach erweitert werden. Auf dem Server braucht dann eigentlich auch nur der User Docker ein /home, in welches dann die config-Ordner kommen.

Was haltet ihr von der Lösung, habe ich was übersehen? Diese Lösung wäre wahrscheinlich sowohl für NFS, als auch für CIFS eine nutzbare Grundlage oder?

Bezüglich NFS oder CIFS bin ich nicht wirklich weiter gekommen. Wenn ich das NFS absichern möchte, dann muss ich wohl Kerberos nutzen, aber mein Libreelec Rechner kann das gar nicht, wenn ich mich täusche. Suchen nach CIFS/SMB vs NFS bringen bloß die immer gleiche Unterscheidung bei Windows SMB ansonsten NFS.

TomL

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von TomL » 06.12.2019 18:37:45

Simaryp hat geschrieben: ↑ zum Beitrag ↑
06.12.2019 18:33:44
Die Idee, durch mount --binds die Zugriffe für Samba zu verändern ist schon mal interessant.
'binds' verändern keine Zugriffsrechte. Das sind im Besten Falle einfach nur (multiple) Mountpoints einer lokalen (!) Ressource. Und die Mountpoints können separat jeweils jeder für sich alleine als eigener Samba-Share freigegeben werden. Und auf jeden Share kann Samba dann eine eigene Rechteverwaltung draufsetzen, die die gesetzten Linux-Rechte aber immer nur beschränken können, aber niemals erweitern oder ignorieren.
Wenn ich einfach für jeden meiner Hauptordner eine extra Gruppe anlege und jeweils die Benutzer die Zugriff haben sollen den Gruppen hinzufüge, dann kann ich mit 770 schon mal erreichen, dass ich selektieren kann, dass nur die gewünschten Nutzer Lesen und schreiben können und das auch auf Dateien, die Ihnen nicht gehören.
Ja, das geht mit Linux-Rechten. Aber damit kannst Du nicht unterscheiden, dass ein Teil der User nur lesen darf und ein anderer Teil der User lesen und schreiben. Wenn das jedoch nicht so wichtig ist, hast Du ja eine Lösung.

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: SMB vs NFS4 und Nutzerrechte

Beitrag von Simaryp » 06.12.2019 18:44:33

TomL hat geschrieben: ↑ zum Beitrag ↑
06.12.2019 18:29:30

Ja, stimmt... meistens... im Regelfall sollte man damit klar kommen. Aber wie gesagt, Samba handhabt auch exotische Anforderungen. Das muss man dann von Fall zu Fall abwägen. Für die Frage Samba oder NFS ist allenfalls noch die Frage relevant, ob Windows-Clients auf die Freigabe zugreifen müssen. Ich weiss nicht, ob Windows mittlerweile NFS als Treiber implementiert hat... ist zu lange her bei mir mit Windows, damals ging das jedenfalls nicht. Weiss Du das?
Es gibt Möglichkeiten NFS unter Windows hinzubekommen. Zumindes habe ich davon gelesen, aber nicht OOTB. Dieses alleinige Kriterium habe ich mehrfach gelesen. Aber ich verstehe ehrlich gesagt auch nicht, warum bei reinen Linux-Netzen nicht auch CIFS als Option mitgenannt wird. Es ist natürlich auf den ersten Blick abstrus in einem reinen Linux-Netz für den Dateitransfer einen windosnahen Dienst zu nutzen. Ich bin da aber undogmatisch. Ich will halt gerne ein stabiles System, das sicher ist und mir kein Chaos oder Probleme mit den Dateienrechten und Metadaten erzeugt. Bei NFS habe ich zum Beispiel gelesen, man müsse extrem auf ein zeitliche Synchronisierung der Rechner achten.
Ich hatte das Problem beim automatischen Verschieben von Dateien.... aus einem Verzeichnis mit Änderungsrecht in eines mit Nur-lesen-Recht. Da wurden die ACLs mitkopiert, was in einem Zeitraum zu einem Integritäts-Verlust eines gewissen Datenstandes geführt hat.. da wurde geändert, was nicht geändert werden durfte, weil die ACLs das quasi versteckt erlaubt haben. Wie gesagt, für alles "statisch am ort" sind ACLs sicher eine gute Wahl.... hier bei mir ging das jedoch gar nicht.
Ist das der Grund, warum ACLs für dich tot sind? Ich weiß gar nicht, ob Synology das nutzt. Ich sollte mich mal über SSH da einloggen und das anschauen. Generell bin ich ein Freund von KISS, gerade weil ich auch nicht der super Admin mit professionellem Hintergrund bin, sondern nur ein gerüttelt Maß Halbwissen und Technikliebe.

Antworten