Nextcloud: Rechteproblem SMB


Enks

Recommended Posts

Hi Leute,

ich habe folgendes Problem mit Nextcloud:

Über die External Storage App habe ich in Nextcloud den User Share "Daten" eingebunden. Wenn ich nun über den Windows Nextcloud-Client mit diesem eine Datei synchronisiere, wird dies zwar gemacht, ich habe aber über SMB keine Schreibrechte mehr bezüglich dieser Datei (Rechte lt. Windows siehe Anhang).

Der SMB-Benutzer hat Schreib- und Leserechte auf besagten Share und kann normal alle übrigen Dateien bearbeiten.

Weitere Informationen:

Docker-Container: nextcloud von linuxserver (Heute frisch neu aufgesetzt inkl. Maria-DB ebenfalls von linuxserver)

Nextcloud-Client: Version 3.4.1 (Windows)

OS: Windows 10 Pro Version 2004

Unraid: Version: 6.9.2

 

Danke im voraus für die Hilfestellung

 

 

 

Rechte.jpg

Fehlermeldung.jpg

Edited by Enks
Link to comment

Anscheinend handelt es sich um ein Allgemeines Docker/SMB-Problem, da ich gerade vorher den Syncthing-Container von Linuxserver installiert habe und dort nach der Synchronisation vom lokalen Rechner zum Unraid-Share dasselbe Problem auftritt: Keine Schreibrechte bei synchronisierten Dateien über SMB.

Bei Syncthing gibt es allerdings die Möglichkeit in den Einstellungen anzugeben. dass die Dateiberechtigungen ignoriert werden sollen, zusätzlich habe ich beim Docker-Template den Wert für UMASK auf 000 (default 022) gesetzt.

Bei Nextcloud hätte ich im Template UMASK=000 auch schon probiert, leider ohne Erfolg.

Link to comment

Hier erst mal eine Übersicht:

https://wintelguy.com/umask-calc.pl

image.png.ec952385415172517eb98a8dc1dad476.png

 

Welche Rechte hat der Ordner "Daten" und hast du die Datei "Testen.docx" neu hochgeladen, nachdem du die umask geändert hast? Die Rechte bestehender Dateien werden dadurch nicht korrigiert.

 

Öffne das WebTerminal und gib "mc" ein und bestätige mit Enter. Drücke "F9" um das "Left" Menü zu öffnen > Listung Format... > Long file list > Ok. Jetzt wechsle in /mnt/user/ und prüfe die Rechte von "Daten". Danach die von "Test01" und eben der Datei.

 

 

Link to comment
17 hours ago, mgutt said:

Welche Rechte hat der Ordner "Daten" und hast du die Datei "Testen.docx" neu hochgeladen, nachdem du die umask geändert hast? Die Rechte bestehender Dateien werden dadurch nicht korrigiert.

Ja Datei und Ordner "Test01" wurden nach der Änderung der umask auf 000 über den Windows-Client neu hochgeladen.

Keine Veränderung gegenüber dem Ausgangszustand.

 

Ich habe heute Nextcloud inkl. MariaDB gelöscht und neu installiert (beide Container wieder von Linuxserver), Umask im Template des Nextcloud-Containers gleich auf 000 gesetzt.

Diesmal habe ich den User Share "test" über external storage eingebunden ("Daten" wird aktuell für syncthing verwendet) und wieder über den Windows-Client den Ordner "Test01" mit der Datei "Testen.docx" hochgeladen. Gleiches Problem wie vorher: Über SMB keine Schreibrechte mehr bezüglich der Datei (Gleiche Rechte wie im ersten Post)

Die SMB-Security Settings in Unraid für test sind:

  • Export: Yes
  • Case-sensitive names: Auto
  • Security: Private

Der SMB-User "lanuser" der über Windows darauf zugreift hat die Rechte: Read/Write

 

Quote

Öffne das WebTerminal und gib "mc" ein und bestätige mit Enter. Drücke "F9" um das "Left" Menü zu öffnen > Listung Format... > Long file list > Ok. Jetzt wechsle in /mnt/user/ und prüfe die Rechte von "Daten". Danach die von "Test01" und eben der Datei.

Ergibt folgendes Ergebnis:

MC.jpg.2dfbca776de7ec1322e4e2c6324c1c89.jpg

Link to comment

Im untersten Bild siehst du die Rechte "-rw-r--r--", also nur Lesen bei der Gruppe users. Damit fehlt dem lanuser das Recht die Datei zu ändern. Dann scheint die umask nicht zu funktionieren bzw beim Einbinden des External Storage greift umask warum auch immer nicht.

 

Hast du das mal getestet? Also ob die umask beim normalen Nextcloud Ordner funktioniert?

 

Geh mal bitte auf die Container Console und poste das Ergebnis davon:

cat /proc/mounts

 

Ein evtl Passwort natürlich entfernen.

Link to comment

Das die Gruppe users nur Leserechte hat ist mir natürlich auch aufgefallen, ich wollte genau diesen Umstand über die Umask korrigieren. Leider funktioniert die Umask nicht.

Ich habe soeben den normalen Nextcloud Ordner getestet: Unterordner "Direkt" über die GUI erstellt und dann im Client mit einem entsprechenden Ordner verknüpft.

Nach Hochladen des Testszenario /Test01/Testen.docx über SMB zum Pfad:

\\CADBRO\nextcloud\MeinBenutzer\files\Direkt\Test01        manövriert, die Gruppe users hat wieder nur Leserechte 😢

Etwas ist mir auch noch aufgefallen:

Wenn ich den Subordner "Test01" im Ordner "test" (External Storage) über die GUI lösche, dann bekomme ich vom Server die Meldung: Fehler beim Löschen der Datei "Test01", es wird dann aber trotzdem durchgeführt, dasselbe Spiel wenn ich den Ordner Lokal lösche: Client meldet, dass es am Server nicht gelöscht werden kann, wird dann aberwieder durchgeführt. Bei der Datei hingegen beide male kein 'gemeckere'.

 

Wie bereits erwähnt hatte ich mit dem Syncthing-Container von Linuxserver dasselbe Rechteproblem, dort griff Umask auch erst dann als ich in der GUI den Haken bei "Berechtigungen ignorieren" setzte. Vielleicht gibts für Nextcloud eine ähnliche Option durch abändern einer config-Datei?

 

Die gwünschte Ausgabe:

 

root@548099d41ef4:/# cat /proc/mounts
/dev/loop2 / btrfs rw,noatime,ssd,space_cache=v2,subvolid=512,subvol=/btrfs/subvolumes/992782d4a708cf484ec65a358a8be3bd6223d8df1e969b694f2b07bc0ed867a8 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,size=65536k,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0
sysfs /sys sysfs ro,nosuid,nodev,noexec,relatime 0 0
tmpfs /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,mode=755 0 0
cpuset /sys/fs/cgroup/cpuset cgroup ro,nosuid,nodev,noexec,relatime,cpuset 0 0
cpu /sys/fs/cgroup/cpu cgroup ro,nosuid,nodev,noexec,relatime,cpu 0 0
cpuacct /sys/fs/cgroup/cpuacct cgroup ro,nosuid,nodev,noexec,relatime,cpuacct 0 0
blkio /sys/fs/cgroup/blkio cgroup ro,nosuid,nodev,noexec,relatime,blkio 0 0
memory /sys/fs/cgroup/memory cgroup ro,nosuid,nodev,noexec,relatime,memory 0 0
devices /sys/fs/cgroup/devices cgroup ro,nosuid,nodev,noexec,relatime,devices 0 0
freezer /sys/fs/cgroup/freezer cgroup ro,nosuid,nodev,noexec,relatime,freezer 0 0
net_cls /sys/fs/cgroup/net_cls cgroup ro,nosuid,nodev,noexec,relatime,net_cls 0 0
perf_event /sys/fs/cgroup/perf_event cgroup ro,nosuid,nodev,noexec,relatime,perf_event 0 0
net_prio /sys/fs/cgroup/net_prio cgroup ro,nosuid,nodev,noexec,relatime,net_prio 0 0
hugetlb /sys/fs/cgroup/hugetlb cgroup ro,nosuid,nodev,noexec,relatime,hugetlb 0 0
pids /sys/fs/cgroup/pids cgroup ro,nosuid,nodev,noexec,relatime,pids 0 0
mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=65536k 0 0
shfs /data fuse.shfs rw,nosuid,nodev,noatime,user_id=0,group_id=0,allow_other 0 0
shfs /test fuse.shfs rw,nosuid,nodev,noatime,user_id=0,group_id=0,allow_other 0 0
shfs /config fuse.shfs rw,nosuid,nodev,noatime,user_id=0,group_id=0,allow_other 0 0
/dev/loop2 /etc/resolv.conf btrfs rw,noatime,ssd,space_cache=v2,subvolid=5,subvol=/ 0 0
/dev/loop2 /etc/hostname btrfs rw,noatime,ssd,space_cache=v2,subvolid=5,subvol=/ 0 0
/dev/loop2 /etc/hosts btrfs rw,noatime,ssd,space_cache=v2,subvolid=5,subvol=/ 0 0
proc /proc/bus proc ro,relatime 0 0
proc /proc/fs proc ro,relatime 0 0
proc /proc/irq proc ro,relatime 0 0
proc /proc/sys proc ro,relatime 0 0
proc /proc/sysrq-trigger proc ro,relatime 0 0
tmpfs /proc/acpi tmpfs ro,relatime 0 0
tmpfs /proc/kcore tmpfs rw,nosuid,size=65536k,mode=755 0 0
tmpfs /proc/keys tmpfs rw,nosuid,size=65536k,mode=755 0 0
tmpfs /proc/timer_list tmpfs rw,nosuid,size=65536k,mode=755 0 0
tmpfs /sys/firmware tmpfs ro,relatime 0 0
root@548099d41ef4:/# 

 

Link to comment

Nutze ebenfalls den Linuxserver Container, nutze externe Speicher, habe Umask nicht spezifiziert und kenne das Problem trotzdem nicht. Es muss m.M.n.  etwas anderes sein. Ich tippe auf nobody vs. Lanuser. Dieses Handling stört mich seit meinen Anfängen mit Unraid. SMB muss m.M.n. unter Unraid zwangsweise nobody erzeugen. Aber was weiß ich schon.

 

Hast Du die Nextcloud User (Verfügbar für) hinter den extenen Speichern spezifiziert?

 

Hast Du bei den einzelnen externen Speichern die Authentifizierung auf keine stehen?

 

Hast Du bei den globalen Anmeldedaten (im unteren Bereich bei den externen Speichern) den User nobody ohne Passwort verwendet?

 

Jetzt zu dem Nextcloud Ordner:

 

Quote

Nach Hochladen des Testszenario /Test01/Testen.docx über SMB zum Pfad:

\\CADBRO\nextcloud\MeinBenutzer\files\Direkt\Test01

 

Ist das der Nextcloud Data Ordner der bei Installation angegeben wurde? Der eignet sich denkbar schlecht als externer Speicher. Nextcloud wird dort immer mit den Rechten jonglieren. Das zu testen bringt nichts.

 

Lass uns auf /mnt/user/x bzw. /mnt/diskx/y als Quelle für externen Speicher konzentrieren. Leg in Unraid einen Share x an. Guck auf der Unraid Konsole welchen User und welche Rechte er hat. Nun nimm Deinen Windows User Lanuser und leg über SMB eine Datei dort rein. Welchen User und welche Rechte hat die Datei?

 

Jetzt klinke diesen Share als externen Ordner gem. meinen o.g. Fragen in Nextcloud ein.

 

Und jetzt lade eine Datei über die Nextcloud Oberfläche dort rein. Welchen user und welche Rechte hat nun diese?

 

Das genau ist das Problem. Entweder nur SMB oder nur Nextcloud. Wird es gemischt, dann besitzt Nextcloud nur noch Leserechte auf die SMB Dateien.

 

Bin zwei Wochen vom PC abgeschnitten, kann also leider keine Screenshots machen.

 

 

Link to comment
1 hour ago, hawihoney said:

Hast Du die Nextcloud User (Verfügbar für) hinter den extenen Speichern spezifiziert?

Bis jetzt habe ich es auf 2 Arten getestet: Für Alle Benutzer verfügbar und dann nochmal für bestimmte Gruppen, beide Male dasselbe Ergebnis

1 hour ago, hawihoney said:

 

Hast Du bei den einzelnen externen Speichern die Authentifizierung auf keine stehen?

Ja

1 hour ago, hawihoney said:

 

Hast Du bei den globalen Anmeldedaten (im unteren Bereich bei den externen Speichern) den User nobody ohne Passwort verwendet?

Habe sowohl Benutzername als auch Passwort ich leer gelassen

1 hour ago, hawihoney said:

 

Jetzt zu dem Nextcloud Ordner:

 

 

Ist das der Nextcloud Data Ordner der bei Installation angegeben wurde? Der eignet sich denkbar schlecht als externer Speicher. Nextcloud wird dort immer mit den Rechten jonglieren. Das zu testen bringt nichts.

Ja, aber wird nicht als externer Speicher eingebunden. War nur zum Testen der Umask über den Windows-Client. Der Externe Speicher hat den SMB-Pfad: \\CADBRO\test, auf Unraid: /mnt/user/test

1 hour ago, hawihoney said:

 

Lass uns auf /mnt/user/x bzw. /mnt/diskx/y als Quelle für externen Speicher konzentrieren. Leg in Unraid einen Share x an. Guck auf der Unraid Konsole welchen User und welche Rechte er hat. Nun nimm Deinen Windows User Lanuser und leg über SMB eine Datei dort rein. Welchen User und welche Rechte hat die Datei?

 

Jetzt klinke diesen Share als externen Ordner gem. meinen o.g. Fragen in Nextcloud ein.

 

Und jetzt lade eine Datei über die Nextcloud Oberfläche dort rein. Welchen user und welche Rechte hat nun diese?

 

Das genau ist das Problem. Entweder nur SMB oder nur Nextcloud. Wird es gemischt, dann besitzt Nextcloud nur noch Leserechte auf die SMB Dateien.

 

Bin zwei Wochen vom PC abgeschnitten, kann also leider keine Screenshots machen.

 

 

/mnt/user/test ist als Externer Speicher in Nextcloud eingeklinkt:

 

Habe nun über den Windows-Client den Subordner Client mit der Word-Datei: "Client-Rechte.docx" synchronisiert

Über die GUI habe ich den Subordner GUI angelegt und darin über die GUI die Word-Datei: "GUI-Rechte.docx" hochgeladen.

Zum Abschluss Habe ich noch über SMB ( Benutzer: lanuser) den Subordner SMB mit der Word-Datei: "SMB-Rechte.docx" angelegt, diese Datei wurde samt Subordner über den Nc-Windows-Client mit dem Desktop synchronisiert, Die Word-Datei dort bearbeitet und dann wieder über den Client mit dem Server synchronisiert.

Ergebnisse:

Vergleich.jpg.dcb22b01d37d4ddd9ad52a06ced4b48a.jpg

Fazit: Wenn eine Datei bereits vor dem ersten Kontakt mit Nextcloud im Share liegt, dann ändert Nextcloud die Rechte an dieser Datei nicht, auch wenn Sie hin und her synchronisiert wird. Bei neuen Dateien werden jedoch von Nextcloud nur Leserechte vergeben (außer nobody)

Edited by Enks
Link to comment
3 hours ago, Enks said:

Bei neuen Dateien werden jedoch von Nextcloud nur Leserechte vergeben (außer nobody)

 

Außer Ersteller (User). Exakt.

 

3 hours ago, Enks said:

Habe sowohl Benutzername als auch Passwort ich leer gelassen

 

Mach nobody und leeres Passwort rein. Bei den einzelnen externen Speichern dann Keine bei der Authentisierung. Das vereinfacht unter Unraid Vieles.

 

Im Grunde machen Nextcloud und Unraid für sich genommen alles richtig - passen nur nicht zusammen. Nextcloud müsste blöd umask beachten oder Unraid per SMBExtra alles auf nobody setzen. Alternativ verwende exakt die gleichen Credentials (User/Passwort) in Nextcloud sowie SMB/Windows. Und wehe, ein weiterer Container soll ebenfalls mit diesen Daten arbeiten.

 

Ich habe für mich entschieden: SMB zum Manipulieren und Nextcloud zum Betrachten. Unabhängig davon knallt hier regelmäßig ein eigenes "New permissions" über alle Platten. Ich war den Krampf irgendwann leid.

 

Edited by hawihoney
Link to comment

Ich habe mal testweise bei PUID die ID von 'lanuser' eingetragen, das wird vom Container übernommen und umgesetzt. Ich habe daher über SMB wieder Schreibrechte, da Nextcloud nun statt nobody den Benutzer lanuser verwendet. Kann diese Vorgangsweise (Container verwendet Benutzer lanuser statt nobody) an einer anderen Stelle zu Problemen führen?

Edited by Enks
Link to comment
4 hours ago, Enks said:

Kann diese Vorgangsweise (Container verwendet Benutzer lanuser statt nobody) an einer anderen Stelle zu Problemen führen?

 

Ja. nobody ist Unraids Universaluser. Nichts und Niemand sonst hat dann Zugriff auf die von Nextcloud erzeugten Daten - außer Lanuser. Es wird schon bei zwei Usern quietschen. Das hängt aber wie gesagt von Deinem Szenario ab. Spiel das mal mit zwei Usern durch ... Ich würde dann wie oben geschrieben Nextcloud- und SMB-User abgleichen.

 

Edited by hawihoney
Link to comment
21 hours ago, hawihoney said:

Nextcloud User: Lanuser --> SMB User: Lanuser

Ah ok. Die Dateien die durch Nextcloud "laufen" gehören mit der default-PUID nobody, insofern haben dann alle SMB-User nur Leserechte, da Nextcloud auf UMASK 0022 beharrt. Demzufolge errachte ich es als vernünftiger, die PUID anzupassen, sodass der Container-User = SMB-User ist. Nachteil ist halt, dass andere Docker nur dann mit diesen Daten arbeiten können, wenn ich auch dort den Container-User umstelle. Da ich aber derzeit nicht vorhabe die Dateien im Externen Storage anderen Containern zur Verfügung zu stellen erübrigt sich dieser Punkt.
Kann es bei der Konstellation: MariaDB mit Docker-User nobody und Nextcloud mit Docker-User lanuser (als Beispiel) zu Problemen mit der Datenbank kommen, Nextcloud sollte doch rein über den zugewisenen Datenbank-Benutzer in die entsprechende MySQL-Datenbank schreiben oder?

Es gäbe ja auch noch das Template von knex666, welches das offiziele Nextcloud-Image verwendet: Wisst ihr ob es dort die selbe Problematik mit der UMASK gibt?

Link to comment

Du hast mein "etc." unterschlagen. Was ich meinte:

 

#1. In Konstellationen mit mehreren Benutzern, die auch jeweils ihre eigenen Daten haben, erstellst Du in Nextcloud für jeden SMB-User einen passenden Nextcloud User. Der Container User hat damit zunächst nichts zu tun. Lass das auf 99/100. Und ja, das ist dann ein SMB/Nextcloud Ding. Alles andere kommt da zunächst nicht ran. Warum auch?

 

#2. Eine typische Unraid Installation ist hingegen single-user. Da kannst Du das genauso machen - halt mit einem User.

 

#3. Bei uns haben ein ganzer Sack Familienmitglieder Zugriff auf alles. Da ist in Nextcloud nobody ohne Passwort bei den External Storages eingetragen. Es wird nichts gesynct. Alle (außer mir lokal) arbeiten Live per WebDav direkt auf dem Server. Da ich als Ältester das meiste beisteuere will ich lokal schneller arbeiten und nutze SMB. Im Moment bin ich 9000 km entfernt. Da nutze ich WebDav. Die SMB Daten werden nachträglich mit chmod/chown angepasst.

 

Wie gesagt: Es gibt viele Szenarien und alternative Lösungen. Oftmals muss man mehrere ausprobieren. Da wir auch Plex nutzen wurde es richtig spannend. Mit Nextcloud durch individuelle Benutzer hochgeladene Bilder konnte Plex nicht anzeigen. Wir haben dann irgendwann beschlossen: Bilder, Musik, Filme, Serien, Hörbücher ausschließlich in Plex. Bücher, Dokumente ausschließlich in Nextcloud. Wir mussten auch durch mehrere Evolutionsschritte bis wir da sind wo wir heute sind. Hier kommen pro Tag roundabout 400 GB dazu. Es hat lange gedauert bis alle Vertrauen in das Konzept hatten. Alle arbeiten rein digital, Papier wird gescannt. Wir haben sogar uralte Fotos digitalisieren lassen und alle verschlagwortet. Es ist perfekt.

 

Edited by hawihoney
Link to comment
  • 4 months later...

Hallo zusammen! Hatte dasselbe SMB-Problem mit Nextcloud und Unraid. Mit dem Community Plugin "Dynamix File Manager" konnte ich die "nobody"-Rechte bei dem freizugebenden Ordner einfach zu einem anderen Nutzern ändern und so problemlos über SMB zum entsprechenden Ordner Verbindung herstellen. 

Etwas verspätet die Antwort aber vielleicht nützt es trotzdem dem einten.

Lg!

 

  • Thanks 1
Link to comment
  • 10 months later...
  • 10 months later...

Moin, falls noch jemand dieses Problem hat. Mit half es, den Fehler im Share Reiter zu suchen. Mit dem Dynamix File Manager kann man Ordnern Owner und Permissions zuweisen. Diese gelten dann auch rekursiv. Hierfür in der Webgui von Unraid auf den Share Reiter gehen, dann auf das Browse Icon klicken und den entsprechenden Ordner mit Hacken markieren. Ich hab mir hierfür echt nen Wolf gesucht.image.thumb.png.5a5230a695942301b3745bf0801f7ad5.pngimage.png.526d1d5029972e1c952511c55ed4bf21.pngimage.png.28a8972f3d66087dc9e11de771977ea4.png

 

 

 

 

 

 

Ich hoffe, das erspart jemand anderen das lange Suchen und den Frust.

 

 

Link to comment
4 hours ago, Zimtio said:

Ich hab mir hierfür echt nen Wolf gesucht.

naja, ist ein Weg ... aber ob der persistent bleibt ... wurde ja oben bereits mal beschrieben, das /data Dir in Nextcloud ist dafür nicht ausgelegt.

da werden die Rechte bei Neustarts, Updates, ... gerne wieder anders gesetzt ;)

 

4 hours ago, Zimtio said:

Ich hoffe, das erspart jemand anderen das lange Suchen und den Frust.

 

daher ist dies nicht die empfohlene Lösung ... zumindest nicht von mir.

 

external shares einbinden, das ist der eine Weg um per Standard smb da nicht in Probleme zu rutschen

 

data ... wenn es im Explorer direkt sein soll, nutz doch einfach die webdav Schnittstelle, solange du jetzt nicht große Dateien damit verschieben willst usw ... ist dass die saubere Lösung und geht immer ... externe Adresse im Explorer angeben.

 

steht im NC webui

image.thumb.png.c0a4c9bac4268a7e936e374cecafcf32.png

 

image.png.9e73303143c749b377d28d10a4bfba0e.png

 

so gibt es keine Rechte Probleme und ... Nextcloud ist auch immer aktuell im webui ... wenn du "extern" per smb da zugreifst bekommt NC das erst mit dem nächsten file scan wieder mit, je nachdem wann der bei dir läuft ...

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.