nfs + CIFS

  • Tach zusammen,


    nachdem meine 10 Jahre alte TS 569-L langsam Mucken macht, hab ich mir eine TS-932PX zugelegt. Bin grad am einrichten.

    Hab einen Linux und einen Windows Rechner. UID des normalen Users ist 1000, sowohl in der QNAP als auch auf der Linuxmaschine.


    Zum Thema Squash aus der nfs-Hilfe:

    Mod: Nicht deklariertes Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen

    • Root-Benutzer zuordnen: Ordnet die Identität des Remote-Root-Benutzers einer einzelnen anonymen Identität zu und verweigert dem Benutzer besondere Zugriffsrechte auf dem angegebenen Host.
    • Alle Benutzer zuordnen: Ordnet alle Client-Anforderungen einer einzigen anonymen Identität auf dem NFS-Server zu.
    • Keine Benutzer zuordnen: Mit der Standardoption wird die Client-Root-Rolle nicht übertragen.

    Daraus werde ich nicht recht schlau.


    Was soll bei mir funktionieren?

    1. Lesender/Schreibender Zugriff der CIFS-User
    2. Lesender/Schreibender Zugriff des root Users auf der Linuxmachine. Ein chmod oder chown auf ein nfs-Verzeichnis sollte nicht in einem permission denied enden
    3. Lesender/Schreibender Zugriff des normalen Users auf der Linuxmachine.

    Was muss ich da einstellen bei squash und muss ich ggf. noch wo anders drehen?

    EDIT:

    Hatte auf der alten NAS NO_RROT_SQUASH und da hat so ziemlich alles funktioniert.

    Hab's jetzt mal mit "Alle Benutzer zuordnen" probiert und hab festgestellt, dass ein als root gesarteter rsync -rv local /nas/Pfad, den man abbricht und wieder neu startet, alle Dateien von frischem komplett neu überträgt. Hat jemand eine Idee, warum das so ist?



    Vg, Rainer

    4 Mal editiert, zuletzt von tychen ()

  • Die Logik beim Zugriff auf nfs ist, dass der nfs-Server die Dateirechte übernimmt und die Zuordnung über die User-ID (ab nfs 4.0 alternativ Usernamen) macht. Wenn dein Linux-User mit der UID 1000 eine Datei auf dem eingebundenen nfs-Laufwerk anlegt, dann gehört diese Datei auch auf dem NAS dem User mit der ID 1000.

    Arbeitest du hingegen mit dem User root (auch über sudo), welcher die UID 0 hat, dann ist auch auf dem NAS die neue Datei der UID 0 zugeordnet.


    Dies Ganze geschieht ohne weitere Authentifizierung. Es reicht der Login bzw. das gestattete sudo-Kommando auf dem Linux-Rechner. Eine Anmeldung auf dem NAS ist nicht nötig. Wenn alle Rechner im Netzwerk ebenfalls unter deiner administrativen Kontrolle sind (wie bei einem Firmennetzwerk), und du festlegen kannst, welcher Benutzer wo überhaupt sudo ausführen darf, ist alles in Butter.


    Gibt es aber einen Rechner im Netzwerk, der nicht unter deiner Kontrolle steht, wo der Benutzer selbst das root-Passwort kennt, dann kann er nach Belieben auf Dateien auf der nfs-Freigabe zugreifen, auch solche, die eigentlich nur root gehören, und zwar ohne sich auf dem NAS anzumelden.


    Dieses Verhalten kann unerwünscht sein. Daher kann mit den obigen Optionen entweder dem Root-User oder allen Usern eine andere UID auf dem NAS zugewiesen werden.


    Bei SMB (CIFS) ist das übrigens anders. Die Zugriffsrechte der Dateien auf dem NAS spielen keine Rolle, und die Rechtevergabe erfolgt über die Anmeldung am NAS.


    Greift ein Rechner auf eine Freigabe per SMB zu, ein anderer auf dieselbe Freigabe per nfs, führt das schnell zu Problemen. In einem solchen Szenario sollte auch Linux die Freigabe besser per SMB (CIFS) einbinden.


    Hab's jetzt mal mit "Alle Benutzer zuordnen" probiert und hab festgestellt, dass ein als root gesarteter rsync -rv local /nas/Pfad, den man abbricht und wieder neu startet, alle Dateien von frischem komplett neu überträgt.

    Du hast die UID-Zuordnung geändert, und deswegen müssen alle Dateien mit anderes UID und GID neu angelegt werden. Aus Sicht vno rsync sind es deswegen nicht dieselben Dateien.