Grundsatzfragen zu Samba 4

Probleme mit Samba, NFS, FTP und Co.
Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 12.04.2019 19:12:29

Hallo zusammen,

Ich versuche gerade eine Verbindung von meinem NAS zu meinem lokalen PC herzustellen und habe ein paar Fragen, die mir hier sicherlich ein paar kundige Linuxer beantworten können.

Auf dem NAS wie auch auf dem lokalen System läuft ausschliesslich Debian.

Folgendes habe ich bisher gemacht:

-Das Paket samba auf dem NAS installiert. Es wurde auch samba-common automatisch beid der samba Package Installation installiert.
-Bei der Frage ob für Wins ein DHCP Paket installiert werden soll, mit Ja beantwortet und das dhcp Paket installiert.
-Einen Eintrag für ein Share eingerichtet. testparm meldet, dass die smb.conf korrekt ist.
-Einträge in die /etc/hosts getätigt, damit die PCs sich auch über Namen finden können.

Zurzeit wird über die XFCE GUI, wenn ich auf das Netzwerk meines lokalen PCs zugreifen will, noch die Ausgabe : "/ auf konnte nicht geöffnet werden" ausgegeben.

Nun habe ich gehört, dass es ab Samba4 nicht mehr notwendig ist, Systemaccounts auf dem NAS anzulegen, da smbpasswd Benutzer genügt.
Ist das korrekt?

Wenn nein, ist es korrekt, dass ich in diesem Falle einen System Account für den auf das NAS zugreifenden Server hinzufügen muss, der über diesselbe
UID wie der Benutzer auf dem auf das NAS zugreifende System hinzufügen muss?

Muss ich auf dem Host, der auf den Samba Server zugreift, ebenfalls das samba Package installieren?

In der smb.conf Datei habe ich als Workgroup einen anderen Namen vergeben als in der Host Datei. Passt das so oder müssen die Domains übereinstimmen?

Vielen Dank im Voraus für eure Unterstützung!
Zuletzt geändert von Trollkirsche am 12.04.2019 20:13:12, insgesamt 1-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 12.04.2019 19:33:21

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 19:12:29
Auf dem NAS wie auch auf dem lokalen System läuft ausschliesslich Debian.
Und warum willst du dann mit Samba vom PC auf das NAS zugreifen?
Hast du schonmal über NFS nachgedacht?

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 12.04.2019 20:10:18

MSfree hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 19:33:21
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 19:12:29
Auf dem NAS wie auch auf dem lokalen System läuft ausschliesslich Debian.
Und warum willst du dann mit Samba vom PC auf das NAS zugreifen?
Hast du schonmal über NFS nachgedacht?
Ich habe Windows Dual Boot fürs Gaming im LAN, zwei PCs. Aus diesem Grunde kommt nur Samba in Frage, da auf dem NAS auch GOG Spiele zu finden sind.

Spezifische Fragen zur Windows Freigabe wollte ich erst im Nachhinein stellen. Dort ist dann vor allem wichtig,
dass Windows mit den Windows Benutzern auf die Shares nur lesen können, wohingegen die Benutzer auf den Linux Systemen
volle Lese und Schreibrechte haben. Wir alle trauen ja Windows nicht so ganz über den Weg, insbesondere ich nicht..

Je sicherer die Kommunikation von Windows zum NAS Server, desto besser.

Aber lass uns doch erst die initialen Fragen klären, das wäre sehr lieb!

Bis dann,

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 12.04.2019 21:32:11

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 20:10:18
Aus diesem Grunde kommt nur Samba in Frage, da auf dem NAS auch GOG Spiele zu finden sind.
Naja, ich würde unter Linux halt NFS nehmen und Samba nur für die Windows-Clients.
Dort ist dann vor allem wichtig, dass Windows mit den Windows Benutzern auf die Shares nur lesen können, wohingegen die Benutzer auf den Linux Systemen volle Lese und Schreibrechte haben.
Dann würde sich NFS für Linux ja geradezu anbieten,mit NFS gibst du die Shares read-write frei. Den Windowkisten gibts du die Shares in Samba nur lesend frei.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 12.04.2019 22:32:17

MSfree hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 21:32:11
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 20:10:18
Aus diesem Grunde kommt nur Samba in Frage, da auf dem NAS auch GOG Spiele zu finden sind.
Naja, ich würde unter Linux halt NFS nehmen und Samba nur für die Windows-Clients.
Dort ist dann vor allem wichtig, dass Windows mit den Windows Benutzern auf die Shares nur lesen können, wohingegen die Benutzer auf den Linux Systemen volle Lese und Schreibrechte haben.
Dann würde sich NFS für Linux ja geradezu anbieten,mit NFS gibst du die Shares read-write frei. Den Windowkisten gibts du die Shares in Samba nur lesend frei.
Ja klar, warum nicht. Klingt nach einem guten Plan zur Erhöhung der Sicherheit.
Kommen sich dann jedoch die zwei Systeme nicht in die Quere, wenn beide Systeme auf das gleiche Share arbeiten?

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 12.04.2019 22:59:39

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 22:32:17
Kommen sich dann jedoch die zwei Systeme nicht in die Quere, wenn beide Systeme auf das gleiche Share arbeiten?
Nein, das ist kein Problem.

Problematisch wird es nur dann, wenn zwei Programme die selbe Datei beschreiben wollen. Der Konflikt besteht aber immer und hat nichts mit Netzwerkzugriffen zu tun, das kann auch passieren, wenn du mit zwei Libreoffices das selbe Dokument bearbeiten willst. Durch Read-Only unter Samba wäre das aber weitgehend entschärft.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 00:20:09

MSfree hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 22:59:39
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 22:32:17
Kommen sich dann jedoch die zwei Systeme nicht in die Quere, wenn beide Systeme auf das gleiche Share arbeiten?
Nein, das ist kein Problem.

Problematisch wird es nur dann, wenn zwei Programme die selbe Datei beschreiben wollen. Der Konflikt besteht aber immer und hat nichts mit Netzwerkzugriffen zu tun, das kann auch passieren, wenn du mit zwei Libreoffices das selbe Dokument bearbeiten willst. Durch Read-Only unter Samba wäre das aber weitgehend entschärft.
Vielen Dank für das Entschärfen der Bedenken.

Ich hab mir zwischenzeitlich auch schon NFS installiert und meine erste Partition auf meinem Client gemountet. Funktioniert soweit alles tiptop.

Das einzige Problem habe ich noch mit den Berechtigungen. Auf dem Server habe ich einen systemuser mit gleichem Namen wie auf dem Client angelegt, und beiden usern die gleiche uid zugewiesen.

Dann habe ich den User auf dem Server in eine Gruppe verschoben und der Partition diese Gruppe per chown zugewiesen.

Wenn ich nun auf dem Client das gemountete share verzeichnis anklicke, sehe ich für jeden Ordner einen gesperrten Folder, obwohl ich ihn lesen und beschreiben kann. Erst nachdem ich auf dem Server der Mount Partition auch den User zugewiesen habe, werden die Ordner korrekt angezeigt.

Genügt es nicht, dass der User sich auf dem Server in der richtigen Gruppe befindet? Müssen in dem Falle nicht nur die uid, sondern auch die gid übereinstimmen auf dem Server und Client?

Bis dann!

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 13.04.2019 12:21:36

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 00:20:09
Das einzige Problem habe ich noch mit den Berechtigungen. Auf dem Server habe ich einen systemuser mit gleichem Namen wie auf dem Client angelegt, und beiden usern die gleiche uid zugewiesen.
NFS funktioniert ähnlich, wie eine externe USB-Platte mit ext4-Dateisystem. Der Server (oder der USB-Controller) brauchen von den Benutzernamen, Rechten und Gruppenzugehörigkeiten gar nichts zu wissen. Der NFS-Server kümmert sich nur um die Daten. Benutzernamen, Gruppenzugehörigkeit und umask werden vom NFS-Client bestimmt. Der Client muß sich also um die Rechte kümmern und nicht der Server.

Samba ist im Gegensatz dazu ein auf einen Benutzer limitierter Zugriff. Die Freigaben werden mit einem einzigen Benutzer gemountet. Darum muß der Sambaserver ja auch Benutzer, Gruppe und umask auf dem Server verwalten.

Der große Nachteil von Samba ist, wenn sich Hugo und Otto gleichzeitig auf einem Linuxrechner (z.B. über SSH) anmelden und Hugo mountet eine Sambafreigabe, dann werden die Dateien, die Otto anlegen möchte, mit Hugos Benutzerrechten angelegt. Das läßt sich nur umgehen, wenn Otto die gleiche Freigabe nochmal unter seinem Namen (natürlöich auf einen anderen Mountpoint) mountet.

Bei NFS mountet das System die Freigabe und kümmert sich clientseitig um die Rechte.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 13:28:14

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 12:21:36
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 00:20:09
Das einzige Problem habe ich noch mit den Berechtigungen. Auf dem Server habe ich einen systemuser mit gleichem Namen wie auf dem Client angelegt, und beiden usern die gleiche uid zugewiesen.
NFS funktioniert ähnlich, wie eine externe USB-Platte mit ext4-Dateisystem. Der Server (oder der USB-Controller) brauchen von den Benutzernamen, Rechten und Gruppenzugehörigkeiten gar nichts zu wissen. Der NFS-Server kümmert sich nur um die Daten. Benutzernamen, Gruppenzugehörigkeit und umask werden vom NFS-Client bestimmt. Der Client muß sich also um die Rechte kümmern und nicht der Server.

Samba ist im Gegensatz dazu ein auf einen Benutzer limitierter Zugriff. Die Freigaben werden mit einem einzigen Benutzer gemountet. Darum muß der Sambaserver ja auch Benutzer, Gruppe und umask auf dem Server verwalten.

Der große Nachteil von Samba ist, wenn sich Hugo und Otto gleichzeitig auf einem Linuxrechner (z.B. über SSH) anmelden und Hugo mountet eine Sambafreigabe, dann werden die Dateien, die Otto anlegen möchte, mit Hugos Benutzerrechten angelegt. Das läßt sich nur umgehen, wenn Otto die gleiche Freigabe nochmal unter seinem Namen (natürlöich auf einen anderen Mountpoint) mountet.

Bei NFS mountet das System die Freigabe und kümmert sich clientseitig um die Rechte.
Hmm das heisst ich muss also auf dem Client die gleichen Gruppen und Benutzer mit den gleichen uid/gid anlegen wie auf dem Server und den Benutzer in die Gruppen hinzufügen, wie auf dem Server?

Irgendwie empfinde ich diese Verwaltung als sehr mühsam.

Nehmen wir mal an, ich habe auf dem Server 2 Gruppen angelegt, eine gruppe heisst admins, die andere user.

Bestimmte Directorys auf dem Server sollen der Gruppe admins, die anderen der gruppe user zugewiesen werden. admins können auch benutzer sein, aber die benutzer keine admins, sodass die Ordner, deren Gruppenzugehörigkeit admins ist, nicht von den usern geöffnet werden können.

Ich habe auf dem Client die gleichen Gruppen erzeugt mit den gleichen gids wie auf dem Server und den Benutzer, der den gruppen admins und users angehören soll, in die Gruppen hinzugefügt.

Im Grunde also eine Spiegelung von den Berechtigungen vom Client und Server.

Wenn ich mir im Client die Ordner ansehe, die ich der gruppe users zugeordnet habe, bekomme ich immer ein ordner mit einem "x" symbol. Dennoch kann ich auf das Verzeichnis zugreifen, weitere ordner erstellen usw.

Warum ist das so? Kann man das umgehen?

Ich empfinde diese Art der Verwaltung wirklich als sehr mühsam. Man muss jedesmal die gleiche Struktur 1:1 auf dem Client reproduzieren, wie auf dem Server. Kostet viel Zeit und ist fehleranfällig.


Die admins sollen alle Partitionen lesen können und gleichzeitig in der gruppe user sein

Den Systemuser mit der gleichen gid, wie sie auch der benutzer auf dem client bekommen hat, habe ich auf dem server in die gruppen hinzugefügt.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 13:40:21

Ok ,ich habe den Client neu gestartet und die XFCE Icons werden nun korrekt den Berechtigungen nach angezeigt.

Dennoch sehr sehr mühsam. Jedesmal muss man auf dem Client die ganze Struktur von Benutzern, Berechtigungen und UID/GID Zuweisung neu replizieren...

wenn ich das richtig verstanden habe.

TomL

Re: Grundsatzfragen zu Samba 4

Beitrag von TomL » 13.04.2019 14:22:52

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 13:40:21
Dennoch sehr sehr mühsam. Jedesmal muss man auf dem Client die ganze Struktur von Benutzern, Berechtigungen und UID/GID Zuweisung neu replizieren...
Das ist eigentlich nicht notwendig.... oder anders gesagt, das wäre nur dann notwendig, wenn man völlig unnötigerweise wirklich an benutzerbezogenen Rechten festhalten will. Im Grundegenommen ist das mit Samba eigentlich sogar total einfach und m.M.n. auch äußerst effektiv gelöst.

Eigentlich ist das ziemlich einfach zu lösen... denn dem Client(-PC/USER) sollte es tatsächlich schnurzpiepegal egal sein, unter welchen lokalen Rechten auf dem Server die Dateien gespeichert werden. Wichtig ist nur eines, es sollen nur berechtigte Benutzer Zugriff haben... und vor dem Hintergrund isses wiederum völlig egal, welche UIDs und GIDs oder Namen oder sonstwas die User auf ihrem Client-PC haben, ebenso wie es völlig irrelevant ist, ob UIDs und GIDs zwischen Client und Server synchron sind. Mit entsprechenden Parametern sieht jeder User dann die Dateien (auch Gruppeneigene) so, als wären es seine eigenen.... genau das, was eigentlich erwünscht ist.

Der Schlüssel zur Lösung ist, dass nicht während des Systemstarts via fstab mit irgendeinem Oberuser gemountet wird und auch nicht durch systemd via mount-units und ebenfalls mit Verwendung der Rechte eines Oberusers, sondern das die Client-User selber durch ihre Anmeldung mit ihren eigenen Berechtigungen den individuellen Mount event-gesteuert veranlassen. Dann kann der Server die Anmeldung (mount) individuell für jeden User (eingetragen in Gruppe?) gegenprüfen und entsprechend damit umgehen. Dieses Problem und auch das mit den ärgerlichen Stopjobs bei WLAN-Verbindungen und aktiven Remote-Mounts habe ich schon seit Jahren gelöst. Server und Clients hinsichtlich UID und GID nur für Samba zu syncen halte ich für einen unlösbaren Wahnsinn.

Wenns Dich interessiert... ich habe das mal beschrieben... Du kannst es Dir mal ansehen um zu prüfen, ob Dir das weiterhilft.

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 13.04.2019 19:33:33

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 13:28:14
Hmm das heisst ich muss also auf dem Client die gleichen Gruppen und Benutzer mit den gleichen uid/gid anlegen wie auf dem Server und den Benutzer in die Gruppen hinzufügen, wie auf dem Server?
Nein. Das soll heißen, daß du auf dem Server überhaupt keine Benutzer und Gruppen anlegen brauchst, und folglich auch gar nichts replizieren brauchst.

TomL

Re: Grundsatzfragen zu Samba 4

Beitrag von TomL » 13.04.2019 19:49:30

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 19:33:33
Nein. Das soll heißen, daß du auf dem Server überhaupt keine Benutzer und Gruppen anlegen brauchst, und folglich auch gar nichts replizieren brauchst.
Wie trennt man denn dann die Zugriffsrechte, wenn sich z.B. auf einem PC mehr als 1 Person anmelden kann und für diese 2 (oder mehr) User unterschiedliche Zugriffsrechte auf Server-Ressourcen bestehen sollen? PCs, die von mehr als 1 User verwendet werden, ist beispielsweise hier ein Problem, was ich lösen musste.

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 13.04.2019 20:19:28

TomL hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 19:49:30
Wie trennt man denn dann die Zugriffsrechte, wenn sich z.B. auf einem PC mehr als 1 Person anmelden kann und für diese 2 (oder mehr) User unterschiedliche Zugriffsrechte auf Server-Ressourcen bestehen sollen?
Genauso wie auf einer lokalen Festplatte.

Wenn ein unberechtigter Benutzer eine Datei auf dem Server lesen/schreiben will, fragt der Linuxkernel auf dem Client nach der Benutzernummer und Gruppennummer der fraglichen Datei. Dann vergleicht der Client die Benutzernummer des eingelogten Benutzers mit der Benutzernummer der angefragten Datei und entscheidet, ob Zugriff gewährt wird oder oder. Der Sever ist dabei nur ein dummer Datenliefrant, der von den einzelnen Benutzern überhaupt nichts wissen muß.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 20:34:34

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:19:28
TomL hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 19:49:30
Wie trennt man denn dann die Zugriffsrechte, wenn sich z.B. auf einem PC mehr als 1 Person anmelden kann und für diese 2 (oder mehr) User unterschiedliche Zugriffsrechte auf Server-Ressourcen bestehen sollen?
Genauso wie auf einer lokalen Festplatte.

Wenn ein unberechtigter Benutzer eine Datei auf dem Server lesen/schreiben will, fragt der Linuxkernel auf dem Client nach der Benutzernummer und Gruppennummer der fraglichen Datei. Dann vergleicht der Client die Benutzernummer des eingelogten Benutzers mit der Benutzernummer der angefragten Datei und entscheidet, ob Zugriff gewährt wird oder oder. Der Sever ist dabei nur ein dummer Datenliefrant, der von den einzelnen Benutzern überhaupt nichts wissen muß.
Hm, irgendwie steh ich auf dem Schlauch.

Der Server muss doch wissen, wer welchen Zugriff auf die Dateien hat? Spielen die Gruppen und Dateirechte auf dem Server also gar keine Rolle? Die müssen doch irgendwie abgeglichen werden?

Nehmen wir an ich hab auf dem Client einen Benutzer. Woher weiss der Server nun, was der Benutzer darf und was nicht, wenn nicht vorher auf dem Server festgelegt?

Selbst wenn der Benutzer auf dem Server nicht angelegt wird, so muss doch auf dem Serversystem zb. durch Gruppen festgelegt werden, wer auf welche Dateien zugreifen darf?

Sry ich checks grad nicht... Ich werd mich da wohl in einer ruhigen Minute weiter reinarbeiten müssen.
Danke TomL auch dir für die Ausführung. Ich arbeite es nacher durch.

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 13.04.2019 20:55:02

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:34:34
Der Server muss doch wissen, wer welchen Zugriff auf die Dateien hat?
Nein, genau das muß der Server nicht wissen.
Spielen die Gruppen und Dateirechte auf dem Server also gar keine Rolle?
Gruppen-ID, Benutzer-ID und Dateirechte sind nur Dateiattribute, die auf dem Dateisystem gespeichert werden, wobei Gruppen-ID und Benutzer-ID nur in Form einer Zahl gespeichert werden.
Die müssen doch irgendwie abgeglichen werden?
Natürlich, aber das macht im Falle von NFS der Client
Nehmen wir an ich hab auf dem Client einen Benutzer. Woher weiss der Server nun, was der Benutzer darf und was nicht, wenn nicht vorher auf dem Server festgelegt?
Der Server weiß es nicht und muß es auch nicht wissen.

Dein Benutzer fragt schließlich den Linuxkernel auf dem Client, auf eine Bestimmte Datei zugreifen zu wollen. Der Clientkernel fragt nun den Server, ob die Datei existiert, welche Benutzernummer und Gruppennummer der Datei zugeordnet ist und wie die Dateirechte aussehen. Dann entscheidet der Clientkernel, ob Zugriff gestattet wird.
Selbst wenn der Benutzer auf dem Server nicht angelegt wird, so muss doch auf dem Serversystem zb. durch Gruppen festgelegt werden, wer auf welche Dateien zugreifen darf?
Nein. Das handhabt alles der Linuxkernel des Clients.

Wenn die z.B als Hugo eine Datei anlegen willst, dann schaut der Clientkernel erstmal, wie die Benutzernummer und Gruppennummer lautet, die Hugo zugeordnet ist, Dieses findet über die Dateien /etc/passwd und /etc/group auf dem Client statt. Dies ergibt beispielsweise Benutzer=1001, Gruppe=2000. Der Client entscheidet dann, ob der Benutzer 1001/2000 auf das Zielverzeichnis schreiben darf, also Schreibrechte für 1001/2000 aufweist. Erst, wenn das geklärt ist, sagt der Clientkernel dem NFS-Server, daß eine Datei auf den Zielverzeichnis für den Nutzer 1001/2000 angelegt werden soll, z.B. mit den Rechten 600.

Wenn jetzt Otto, der z.B. Benutzer 1002, Gruppe 3000 ist, die Datei lesen wil, die Hugo (1001/2000) angelegt hat, wird vom Clientkernel geprüft, ob der Nutzer 1002/3000 auf die Datei zugreifen darf, die 1001/2000 gehört und nur Lesen für 1001/2000 gewährt. Wenn, wie in diesem Fall keine Berechtigung besteht, dann sagt der Clientkernel "nein".

Daß der Benutzer 1001/2000 Hugo auf dem Client heißt, muß der Server nicht wissen, in /etc/passwd des Servers muß Hugo also auch nicht eingetragen sein. Selbes gilt für Otto.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 21:35:23

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:55:02
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:34:34
Der Server muss doch wissen, wer welchen Zugriff auf die Dateien hat?
Nein, genau das muß der Server nicht wissen.
Spielen die Gruppen und Dateirechte auf dem Server also gar keine Rolle?
Gruppen-ID, Benutzer-ID und Dateirechte sind nur Dateiattribute, die auf dem Dateisystem gespeichert werden, wobei Gruppen-ID und Benutzer-ID nur in Form einer Zahl gespeichert werden.
Die müssen doch irgendwie abgeglichen werden?
Natürlich, aber das macht im Falle von NFS der Client
Nehmen wir an ich hab auf dem Client einen Benutzer. Woher weiss der Server nun, was der Benutzer darf und was nicht, wenn nicht vorher auf dem Server festgelegt?
Der Server weiß es nicht und muß es auch nicht wissen.

Dein Benutzer fragt schließlich den Linuxkernel auf dem Client, auf eine Bestimmte Datei zugreifen zu wollen. Der Clientkernel fragt nun den Server, ob die Datei existiert, welche Benutzernummer und Gruppennummer der Datei zugeordnet ist und wie die Dateirechte aussehen. Dann entscheidet der Clientkernel, ob Zugriff gestattet wird.
Selbst wenn der Benutzer auf dem Server nicht angelegt wird, so muss doch auf dem Serversystem zb. durch Gruppen festgelegt werden, wer auf welche Dateien zugreifen darf?
Nein. Das handhabt alles der Linuxkernel des Clients.

Wenn die z.B als Hugo eine Datei anlegen willst, dann schaut der Clientkernel erstmal, wie die Benutzernummer und Gruppennummer lautet, die Hugo zugeordnet ist, Dieses findet über die Dateien /etc/passwd und /etc/group auf dem Client statt. Dies ergibt beispielsweise Benutzer=1001, Gruppe=2000. Der Client entscheidet dann, ob der Benutzer 1001/2000 auf das Zielverzeichnis schreiben darf, also Schreibrechte für 1001/2000 aufweist. Erst, wenn das geklärt ist, sagt der Clientkernel dem NFS-Server, daß eine Datei auf den Zielverzeichnis für den Nutzer 1001/2000 angelegt werden soll, z.B. mit den Rechten 600.

Wenn jetzt Otto, der z.B. Benutzer 1002, Gruppe 3000 ist, die Datei lesen wil, die Hugo (1001/2000) angelegt hat, wird vom Clientkernel geprüft, ob der Nutzer 1002/3000 auf die Datei zugreifen darf, die 1001/2000 gehört und nur Lesen für 1001/2000 gewährt. Wenn, wie in diesem Fall keine Berechtigung besteht, dann sagt der Clientkernel "nein".

Daß der Benutzer 1001/2000 Hugo auf dem Client heißt, muß der Server nicht wissen, in /etc/passwd des Servers muß Hugo also auch nicht eingetragen sein. Selbes gilt für Otto.
Auf der Seite:
https://linuxwiki.de/NFS
steht folgendes:
Die Benutzerkennungen auf Server und Client müssen für die korrekte Funktion übereinstimmen.

Mir ist schon klar das intern in Linux Systemen die uid und gid wichtig ist und nicht der Name selbst.

Damit der Benutzer von einem Client aus auf einen NFS Ordner zugreifen darf, muss der NFS Ordner diesselbe gid besitzen, wie die gid des Benutzers auf dem Client? Ist das korrekt?

Weiter steht:
Benutzerkennungen auf Server und Client müssen übereinstimmen also die Gruppen- und Passwortdatei:

/etc/group users:x:100:mein-Loginname (Beispiel users:x:100:detlef,tobias,sandra)

/etc/passwd mein-Loginname:x:1000:1000:mein-Loginname,,,:/home/mein-Loginname:/bin/bash

muss auf Server und Client identisch sein.

So wie ich das verstehe müssen also auf beiden Systemen beide Male die gleichen benutzer wie auch user definiert werden, damit der Abgleich vonstatten gehen kann. Richtig?

TomL

Re: Grundsatzfragen zu Samba 4

Beitrag von TomL » 13.04.2019 22:13:59

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:34:34
Hm, irgendwie steh ich auf dem Schlauch.
Ich momentan auch..... wegen...
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
12.04.2019 20:10:18
Ich habe Windows Dual Boot fürs Gaming im LAN, zwei PCs. Aus diesem Grunde kommt nur Samba in Frage, da auf dem NAS auch GOG Spiele zu finden sind.
Seit wann geht es denn jetzt um NFS? Kann Windows jetzt auch NFS?

TomL

Re: Grundsatzfragen zu Samba 4

Beitrag von TomL » 13.04.2019 22:17:02

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:55:02
Nein. Das handhabt alles der Linuxkernel des Clients.
Das heisst, anstatt auf einem Samba-Server einmalig zentral die Rechte via Samba zu setzen zu pflegen, muss ich dass dann auf jedem Client machen... also überall Gruppen, User und spezielle Berechtigungen einrichten? Und das dann bei jeder Änderunge (sicher, die sind selten) erneut ausrollen? Und das soll einfacher sein?
MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:19:28
Dann vergleicht der Client die Benutzernummer des eingelogten Benutzers mit der Benutzernummer der angefragten Datei und entscheidet, ob Zugriff gewährt wird oder oder.
Wie soll das funktionieren? Auf meinem PC habe ich die UID 1000, im Büro 1006, auf dem Laptop meines Sohnes 1002, auf dem Server 1008, usw... was für eine Nummer soll denn da verglichen werden? Wie kriegt man denn UIDs synchron, wenn Geräte im Laufe der Zeit ausgetauscht werden und neue Geräte reinkommen. Muss ich dann erst 6 Dummy-User anlegen, damit ich die UID 1006 bekomme? Nee, das krieg ich grad gar nicht auffe Reihe.

Mit Samba muss ich mich da jedenfalls nicht drum kümmern und krieg user-bezogene Rechte auf Samba-Files ganz einfach..... losgelöst von unterschiedlichen Client-UIDs

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 22:36:20

TomL hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 22:17:02
MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:55:02
Nein. Das handhabt alles der Linuxkernel des Clients.
Das heisst, anstatt auf einem Samba-Server einmalig zentral die Rechte via Samba zu setzen zu pflegen, muss ich dass dann auf jedem Client machen... also überall Gruppen, User und spezielle Berechtigungen einrichten? Und das dann bei jeder Änderunge (sicher, die sind selten) erneut ausrollen? Und das soll einfacher sein?
MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 20:19:28
Dann vergleicht der Client die Benutzernummer des eingelogten Benutzers mit der Benutzernummer der angefragten Datei und entscheidet, ob Zugriff gewährt wird oder oder.
Wie soll das funktionieren? Auf meinem PC habe ich die UID 1000, im Büro 1006, auf dem Laptop meines Sohnes 1002, auf dem Server 1008, usw... was für eine Nummer soll denn da verglichen werden? Wie kriegt man denn UIDs synchron, wenn Geräte im Laufe der Zeit ausgetauscht werden und neue Geräte reinkommen. Muss ich dann erst 6 Dummy-User anlegen, damit ich die UID 1006 bekomme? Nee, das krieg ich grad gar nicht auffe Reihe.

Mit Samba muss ich mich da jedenfalls nicht drum kümmern und krieg user-bezogene Rechte auf Samba-Files ganz einfach..... losgelöst von unterschiedlichen Client-UIDs
Wir sind im Laufe der Diskussion auf NFS geswitcht, da mir von MSFree angeraten wurde, die Linux Shares unter NFS zu betreiben und die Samba Shares read-only für Windows :)

Daher wohl die Konfusion. :)

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 13.04.2019 22:38:46

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 21:35:23
Auf der Seite:
https://linuxwiki.de/NFS
steht folgendes:
Die Benutzerkennungen auf Server und Client müssen für die korrekte Funktion übereinstimmen.
Die Benutzerkennung und Group-ID sind Zahlen.
Damit der Benutzer von einem Client aus auf einen NFS Ordner zugreifen darf, muss der NFS Ordner diesselbe gid besitzen, wie die gid des Benutzers auf dem Client? Ist das korrekt?
Richtig.
Benutzerkennungen auf Server und Client müssen übereinstimmen also die Gruppen- und Passwortdatei:

/etc/group users:x:100:mein-Loginname (Beispiel users:x:100:detlef,tobias,sandra)

/etc/passwd mein-Loginname:x:1000:1000:mein-Loginname,,,:/home/mein-Loginname:/bin/bash
Falsch.
Auf dem Server wird überhaupt keine User-ID und Group-ID Eintrag benötigt.
So wie ich das verstehe müssen also auf beiden Systemen beide Male die gleichen benutzer wie auch user definiert werden, damit der Abgleich vonstatten gehen kann. Richtig?
Falsch.

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 13.04.2019 22:54:39

TomL hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 22:17:02
Wie soll das funktionieren? Auf meinem PC habe ich die UID 1000, im Büro 1006, auf dem Laptop meines Sohnes 1002, auf dem Server 1008, usw... was für eine Nummer soll denn da verglichen werden?
Du sollst auf jedem Client deinen Benutzer mit der selben Benutzernummer und Gruppennummer einrichten.
Wie kriegt man denn UIDs synchron, wenn Geräte im Laufe der Zeit ausgetauscht werden und neue Geräte reinkommen. Muss ich dann erst 6 Dummy-User anlegen, damit ich die UID 1006 bekomme? Nee, das krieg ich grad gar nicht auffe Reihe.
Dem Befehl adduser (siehe man adduser) kann die User-ID und die Group-ID mitgegeben werden:

z.B. mit

Code: Alles auswählen

adduser --home /home/hugo --shell /bin/bash --uid 4711 --gid 4242 hugo
Letztlich sind /etc/passwd und /etc/group nur ASCII-Dateien, in denen man die IDs auch editieren kann. Bereits exisierende Dateien muß man dann unter Umständen mit chown anpassen. OK, nachträglich ist das lästig, aber nur einmalig nötig.

Wenn man es von Anfang an so handhabt, ist es kein Problem.
Mit Samba muss ich mich da jedenfalls nicht drum kümmern und krieg user-bezogene Rechte auf Samba-Files ganz einfach..... losgelöst von unterschiedlichen Client-UIDs
Das Problem ist, daß Samba und NFS eben so völlig anders konzipiert sind. Hat man das eine verstanden, erscheint einem das andere unlogisch, kompliziert und komisch. Vor allem, wenn man von Windows kommt, erscheint einem NFS erstmal unlogisch, obwohl das eigentlich sehr viel einfacher aufgebaut und handzuhaben ist.

NFS existiert nun schon über 30 Jahre und war von vorn herein auf Multiuser ausgelegt. Samba stammt aus Windows 3.0, das ein Einzelplatzsystem für einen einzelnen Benutzer und einem einzigen laufenden Programm ausgelegt war. Das Konzept, daß sich ein Rechner an einem Netz anmeldet, stammt noch aus dieser Zeit. Und da die Systeme nur Einplatzsysteme waren, war Benutzerlogin und Rechneranmeldung das Selbe. Multiuser und Multitasking wurder erst viel Später mit WinNT aufgestülpt. Hier liegt dann auch der Grund, warum Samba so völlig anders funktionieren muß.

Aber so ganz nebenbei gibt es natürlich unter Linux auch Möglichkeiten, Benutzer zentral zu verwalten, unter Verzicht von /etc/passwd und /etc/group. Das erste System hieß Yellow Pages (yp), heute nimmt man dafür meist LDAP und löst damit das Problem, daß die User-IDs sich von Rechner zu Rechner unterscheiden könnten.

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Grundsatzfragen zu Samba 4

Beitrag von Trollkirsche » 13.04.2019 23:48:32

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 22:38:46
Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 21:35:23
Auf der Seite:
https://linuxwiki.de/NFS
steht folgendes:
Die Benutzerkennungen auf Server und Client müssen für die korrekte Funktion übereinstimmen.
Die Benutzerkennung und Group-ID sind Zahlen.
Damit der Benutzer von einem Client aus auf einen NFS Ordner zugreifen darf, muss der NFS Ordner diesselbe gid besitzen, wie die gid des Benutzers auf dem Client? Ist das korrekt?
Richtig.
Benutzerkennungen auf Server und Client müssen übereinstimmen also die Gruppen- und Passwortdatei:

/etc/group users:x:100:mein-Loginname (Beispiel users:x:100:detlef,tobias,sandra)

/etc/passwd mein-Loginname:x:1000:1000:mein-Loginname,,,:/home/mein-Loginname:/bin/bash
Falsch.
Auf dem Server wird überhaupt keine User-ID und Group-ID Eintrag benötigt.
So wie ich das verstehe müssen also auf beiden Systemen beide Male die gleichen benutzer wie auch user definiert werden, damit der Abgleich vonstatten gehen kann. Richtig?
Falsch.
Vorweg zur Vermeidung von Konfusion : Ich beziehe mich ausschliesslich auf NFS, nicht Samba.

Du sagst, auf dem Server würde keine User ID und Group ID benötigt. Gleichzeitig bestätigst du, dass der Benutzer eines Clients, der auf einen NFS Ordner zugreifen will, die gleiche gid oder uid haben muss, wie der Ordner.

Wie lässt sich das vereinbaren? Der Server exportiert einen Ordner. Dieser Ordner wiederum hat bestimmte Rechte. Wenn nun diese Rechte jedoch nicht mit der uid oder gid des Benutzers des Clients übereinstimmen, dann wird doch der Zugriff verwehrt? Also muss doch der Ordner auf dem Server erstmal eine uid oder gid zugewiesen bekommen, der es dem Benutzer erlaubt, auf den NFS Ordner zuzugreifen?

Tut mir leid, aber ich hab da echt einen Knoten...

TomL

Re: Grundsatzfragen zu Samba 4

Beitrag von TomL » 13.04.2019 23:50:58

MSfree hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 22:54:39
Das Problem ist, daß Samba und NFS eben so völlig anders konzipiert sind. Hat man das eine verstanden, erscheint einem das andere unlogisch, kompliziert und komisch. Vor allem, wenn man von Windows kommt, erscheint einem NFS erstmal unlogisch, obwohl das eigentlich sehr viel einfacher aufgebaut und handzuhaben ist.
Nein, kein Problem, ist mir nicht unlogisch. Ich arbeite seit fast 40 Jahren mit Datenbanken und bestimmt seit 30 Jahren mit Rechtemanagement. Ich habe von Anfang an verstanden, wie das gehen würde, wenn man das so einrichtet... ich betone "wenn"... aber ohne ein Tool für eine zentrale Benutzerverwaltung halte ich das für unpraktikabel. Allerdings da stimme ich Dir zu, LDAP wäre vielleicht eine Lösung. Ich strebe aber eine Lösung an, die minimalistisch im Setup ist, aber (für uns) maximal im Ergebnis ist. Die Clients sollen weitestgehend Standard-Setup sein, ohne großes individuelles Customizing. Ich will noch nicht mal über UIDs nachdenken, sondern machs in der Reihenfolge, wie es mir in den Sinn kommt oder bei Bedarf. Beim Rechner-Setup kopiere ich schnell ein paar Service-Units, 2 Scripte und das wars.... den Rest macht der Sambaserver. Und weil auf dem Client per Eventhandler nach dem User-Login mit der Samba-Anmeldung des User gemountet wird, kann der User auch nur mit seinen Rechten (die er auf dem Server hat) arbeiten.

Benutzeravatar
MSfree
Beiträge: 10754
Registriert: 25.09.2007 19:59:30

Re: Grundsatzfragen zu Samba 4

Beitrag von MSfree » 14.04.2019 00:10:29

Trollkirsche hat geschrieben: ↑ zum Beitrag ↑
13.04.2019 23:48:32
Du sagst, auf dem Server würde keine User ID und Group ID benötigt. Gleichzeitig bestätigst du, dass der Benutzer eines Clients, der auf einen NFS Ordner zugreifen will, die gleiche gid oder uid haben muss, wie der Ordner.

Wie lässt sich das vereinbaren?
Der exportierte Ordner sollte natürlich Schreib und Leserechte für alle haben, also 777-Rechte haben. Legt ein Benutzer nun einen Ordner an, so kann er das dort tun, weil die oberste Ebene eben für jeden beschreibbar ist. Die vom Benutzer neu angelegte Ordner wird ganz einfach mit der User-ID, der Gruppen-ID und den Zugriffsrechten, die per umask definiert sind, auf dem Server angelegt. In dem Unterorner hat nun nur noch der Benutzer alle Rechte, der den Ordner angelegt hat. Der Server braucht dazu keinen Eintrag in seiner passwd/group.

Antworten