NFS Mount zeigt nicht alle Unterodener und Dateien (SMB schon)

  • Hallo zusammen,

    ich habe eine SMB Freigabe nun ebenfalls mit NFS Freigegeben weil mehrer Benutzer darauf zugreifen und das mit SMB bei gleichzeitigem zugriff immer zu problemen kam. (bei den CLients mit Problemen handelt es sich immer um iMacs)


    nun ist es so das die User die über NFS zugreifen nicht alles sehen, es fehlen Unterorder und dateien, woran kann das liegen? hab ich vielleicht die "vererbung" abgebrochen? und wenn ja kann ich die wiederholen? wenn ja wie? oder hat wer einen anderen Tip woran es liegt und was ich versuchen kann?


    Danke vorab

    TJ


    Nachtrag:



    Router

    |

    |

    Switch (10/100/1000 | Porttrunking ja | VLANS ja) VLAN1 192.168.1.0/24 Win Netz ; 192.168.2.0/24 MAC Netz

    | |LAN-Drucker |WLAN-Accesspoint

    |

    |--- NAS (LAN1 192.168.1.146. LAN2 192.168.2.146


    Folgende Angaben runden das ganze Bild weiter ab:

    - welches NAS mit welcher Firmwareversion: QuTS hero Fw: 4.5.1.1582

    - welches Betriebssystem wird genutzt: MAC OS 10.x und höher | Windows 10 20h2l

    - welche Bandbreite hat der genutzte Client: 1000

    - welches Gerät nutzt welche IP mit welcher Subnetzmaske (hier reicht u.U. x.x.2.84 /24)

    - wird DHCP ohne Reservierungen

    - werden WLAN-Strecken genutzt nein

    - gibt es Kabellängen > 80m nein

    - wird Powerlan genutzt nein

  • Das ist normal.


    Bei NFS wird ein Benutzer auf deinem lokalen Linux-Rechner oder Mac auf einen Benutzer auf dem NAS abgebildet. Bei NFS bis Version 3 geschieht das über die Id, d. h. Benutzer mit Id = 1000 wird auf NAS-Benutzer ebenfalls mit Id = 1000 abgebildet. Ab NFS 4.0 kann diese Abbildung alternativ über den Benutzernamen geschehen. In deinem gemounteten NFS-Verzeichnis siehst du somit nur die Dateien und Verzeichisse, die auch der zugehörige NAS-Benutzer sehen darf. Schreib- und Ausführrechte entsprechend.

    Hinweis: NFS wird nicht über einen Benutzer gemounted, sondern generell. Wenn du mit su den Benutzer wechselst, kannst du anschließend andere Dateien lesen und ändern.


    Bei SMB geschieht diese Rechtevergabe grundlegend anders. Die einzelnen Dateirechte werden ignoriert. Ebenso ist unerheblich, welcher Benutzer auf deinem PC/Mac/Linux-Rechner gerade angemeldet ist. Wichtig sind nur die Anmeldedaten, mit denen die SMB-Freigabe gemounted wurden. Die Dateirechte werden aus der SMB-Konfiguration entnommen (hier in qts im Browser konfiguriert) und gelten üblicherweise generell für die Freigabe.


    Wenn also in dem NFS-Mount Dateien nicht sichtbar sind, die in der SMB-Freigabe aber zu sehen sind, dann hat der SMB-User die entsprechenden Rechte auf die komplette Freigabe, dem zugeodneten NAS-Benutzer fehlen aber die Unix-Leserechte auf diese konkrete Datei.

  • Hallo und danke für deine Antwort,


    hier scheint also grundsätzlich etwas schief zu sein, denn die Freigabe ist ein Verzeichnis/Freigabe und ein Teil kann gesehen werden und ein anderer nicht...


    Kann es sein das ich beim einrichten der NFS-Freigabe über das WebIF "zuschnell" weg geklickt habe bervor die "vererbung" der recht abgeschlossen was? sodass einige Unterverzeichnisse und Dateien zu sehen sind und andere nicht?


    Wenn ja wie kann ich die NFS Freigabe neu setzen damit die "vererbung" neu gesetzt wird.

  • Wenn du dich mit ssh anmeldest (oder mit root/sudo auf einem Rechner, der das Verzeichnis per NFS (nicht SMB!) gemountet hat) und eingibst

    cd /share/Freigabeordner

    ls -l

    dann siehst du die Rechte (rwxrwxrwx für alle Rechte, fehlende Rechte mit -, sortiert nach Eigentümer Gruppe und andere), den Eigentümer der Datei und die Gruppe. Vermutlich erkennst du dann schon einen Unterschied zwischen sichtbaren und nicht sichtbaren Dateien/Verzeichnissen.


    Die Rechte kannst du mit chmod ändern

    sudo chmod -R 777 /share/Freigabeordner

    "777" heißt jeder darf alles, das ist die "brutale Variante". Kann man auch anders wählen. Im Freigabeordner mag "jeder darf alles" in Ordnung sein. Ist der per SMB gemounted, gilt das ohnehin.

    -R ist deine "Vererbung"

    Aber Vorsicht! Pass gut auf, dass du das nur im Freigabeordner machst! Anderswo (z. B. in / weil das cd gefehlt hat) kannst du dir sehr viel kaputt machen.


    Leider bleibt das jetzt nicht so. Wenn jetzt ein Anwender im mit NFS gemounteten Verzeichnis eine neue Datei oder ein Verzeichnis anlegt, kann ein zweiter Nutzer auf einem zweiten Rechner, der nicht der gleichen Gruppe angehört wie der erste, diese neuen Dateien und Verzeichnisse nicht sehen. Ob die Gruppe gleich ist, regelt bis NFS 3 die ID der Gruppe. Wichtig ist dafür die umask des Benutzers, und zwar auf dem lokalen Rechner, nicht auf dem NAS (Ob man hier in der NFS-Konfiguration ändern kann, weiß ich nicht). Die umask regelt die Rechte, die neu angelegte Dateien haben. Der Benutzer, der die Datei/das Verzeichnis anlegt, kann die Rechte mit chmod, chown und chgrp ändern, aber meistens tut er das nicht.

  • Hallo und noch einmal danke für deine Hilfe.


    Soweit hat das geklappt und ja mit der vererbung ist natürlich mist, ich habe mehrere IMacs und auch Windows Clients die auf die Freigabe zugreifen, (Windows PCs in der Regel über die SMB Freigabe, die iMACs über NFS... die ID wird unterschiedlich sein folglich laufen wir auf kurz oder lang in Probleme oder ich lasse den chmod -r 777 per chron laufen ? wäre das ne option?

  • Die SMB-Clients (Windows) stören nicht. Da ist die ID egal, weil die beim SMB-Zugriff nicht genutzt wird und die Dateien werden immer mit vollen Rechten 777 angelegt.


    Die IDs auf den Macs kann man anpassen. Wenn die User über das Migrationstool erstellt wurden (weil das alter und neuer Mac sind), dann ist das nicht nötig, weil das Migrationstool wenn möglich die IDs beibehält. Eine Anleitung zum Ändern der IDs gibt es z. B. hier. Die Änderung ist deswegen aufwendiger, weil die Eigentümer- und Gruppen-IDs der Dateien nicht automatisch geändert werden, wenn die ID beim Eigentümer geändert wurde. Es kann auch später noch mal passieren, dass man auf Dateien mit der alten ID trifft.


    Wenn du die IDs nicht ändern möchtest, könnte der folgende Workaround funktionieren (selbst nicht probiert). Du setzt 'umask 000' (d. h. alles erlaubt für jeden). Dies kann geschehen in /etc/launchd-user.conf (Standard), in /etc/profile oder für jeden User einzeln in ~/.profile. Da die drei Dateien in dieser Reihenfolge ausgeführt werden, braucht der Standard nicht abgefasst zu werden, wenn du nur für einen einzelnen Benutzer diese Änderung vornimmst (das würde ich empfehlen).

    Nachteil der Lösung: Diese Rechte Alles-für-alle gelten nicht nur im NFS-Verzeichnis, sondern auch auf der lokalen Platte.


    Aber warum nimmst du NFS für deine iMacs? Warum nimmst du nicht einfach SMB?

    - SMB ist das von Apple bevorzugte Protokoll

    - SMB ist schneller (in meinenen Tests 30% bis 100% Gewinn gegenüber NFS)

    - SMB ist sicherer. Jeder User muss Name und Passwort angeben. NFS-Freigaben kann jedoch jeder mounten, und mit wenig Aufwand kann man sämtliche Dateien lesen und schreiben. Die Einschränkung auf IPs bringt keine echte Sicherheit. Die Sicherheit von NFS ist nur gegeben in einem komplett administrierten Firmennetzwerk, in dem außer den Admins niemand sudo-Rechte besitzt. Das ist im Heimnetz aber nie der Fall. Ausnahme: NFS-Autoritisierung über Kerberos. Ich habe aber Zweifel, ob Kerberos und NFS überhaupt mit dem Mac funktioniert.


    (Im Einzelfall kann es aber tatsächlich Gründe für NFS-Mounts am Mac geben. Z. B. funktioniert das Subversive-Plugin für Eclipse nicht mit SMB, wohl aber mit NFS. Deswegen nutze ich an einer Stelle NFS am Mac.)