Nextcloud und Home_auf_Server

Hallo zusammen,
ich würde gerne meinen Kollegen/innen den Zugriff auf ihre eigenen Dateien mittels Nextcloud ermöglichen.
Dazu bin ich wie folgt vorgegangen:

  1. Auf unserem Docker-Host habe ich next-cloud installiert. Läuft
  2. Wie in der Dokumentation die LDAP-Authentifizierung eingerichtet. Läuft
  3. Die App External storage support aktiviert.
  4. In der Firewall habe ich für den Dockerhost eine Port-Weiterleitung für die Ports 445 und 139 auf den Server eingerichtet.
  5. Bei Einstellungen -> Externer Speicher den erternen Ordner Home_auf_Server mit folgenden Einstellungen hinzugefügt
    a) Ordnername: Home_auf_Server
    b) SMB/CIFS gewählt
    c) Host: server.staufer-gymnasium.de
    d) Share: default-school
    e) Entfernter Unterordner: teachers/$user
    f) Domain: linuxmuster.lan
    g) Anmeldenamen in Sitzung speichern gewählt

Abgemeldet und als Benutzer rettich getestet. Scheint zu laufen :slight_smile:
Beim Testen habe ich auch mal einen ganzen Ordner mit Bilden (40 Stück) auf mein Home_auf_Server geladen. Läuft :star_struck:
Dann wollte ich die Bilder wieder löschen. Ein paar Bilder wurden gelöscht aber fast die Hälft der Bilder wurden nicht gelöscht. Nextcloud hat Fehler beim Löschen der Datei „Name.JPG“. ausgegben.
Nach ein paar Anläufen waren dann aber die Bilder wieder gelöscht. :frowning:

Das ganze Verfahren habe ich schon mit diversen Variationen durchgespielt. Nexctloud Versionen 18 19 und 20, als Docker oder als VM, im Schulnetz oder von außerhalb durch die Firewall. Der Effekt ist immer der gleiche: Dateien/Verzeichnisse werden nicht sicher/vollständig gelöscht.

Als Admin bekommt man diese Fehlermeldung:

[PHP] Error: Error: Undefined offset: 1 at /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php#221 at <<closure>>

 0. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 221
    OC\Log\ErrorHandler::onError(8, "Undefined offset: 1", "/var/www/html/a ... p", 221, {file: Icewind\S ... "})
 1. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 249
    OCA\Files_External\Lib\Storage\SMB->getACL(Icewind\SMB\Wrapped\FileInfo {})
 2. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 610
    OCA\Files_External\Lib\Storage\SMB->getFolderContents("teachers/rettich")
 3. /var/www/html/lib/private/Files/Storage/Wrapper/PermissionsMask.php line 158
    OCA\Files_External\Lib\Storage\SMB->getDirectoryContent("")
 4. /var/www/html/lib/private/Files/Storage/Wrapper/PermissionsMask.php line 158
    OC\Files\Storage\Wrapper\PermissionsMask->getDirectoryContent("")
 5. <<closure>>
    OC\Files\Storage\Wrapper\PermissionsMask->getDirectoryContent("")
 6. /var/www/html/lib/private/Files/Cache/Scanner.php line 408
    iterator_to_array(Generator {})
 7. /var/www/html/lib/private/Files/Cache/Scanner.php line 388
    OC\Files\Cache\Scanner->handleChildren("", false, 3, 1034, true, 0)
 8. /var/www/html/lib/private/Files/Cache/Scanner.php line 340
    OC\Files\Cache\Scanner->scanChildren("", false, 3, 1034, true)
 9. /var/www/html/lib/private/Files/View.php line 1339
    OC\Files\Cache\Scanner->scan("", false)
10. /var/www/html/lib/private/Files/View.php line 1383
    OC\Files\View->getCacheEntry(OCA\Files_Trashb ... l}, "", "/rettich/files/Home_auf_Server")
11. /var/www/html/lib/private/Files/Node/Root.php line 201
    OC\Files\View->getFileInfo("/rettich/files/Home_auf_Server")
12. /var/www/html/lib/private/Files/Node/Node.php line 287
    OC\Files\Node\Root->get("/rettich/files/Home_auf_Server")
13. /var/www/html/lib/private/Share20/Manager.php line 1668
    OC\Files\Node\Node->getParent()
14. /var/www/html/lib/private/Share20/ShareHelper.php line 53
    OC\Share20\Manager->getAccessList(OC\Files\Node\Folder {}, true, true)
15. /var/www/html/apps/activity/lib/FilesHooks.php line 635
    OC\Share20\ShareHelper->getPathsForAccessList(OC\Files\Node\File {})
16. /var/www/html/apps/activity/lib/FilesHooks.php line 225
    OCA\Activity\FilesHooks->getUserPathsFromPath("/Home_auf_Serve ... G", "rettich")
17. /var/www/html/apps/activity/lib/FilesHooks.php line 177
    OCA\Activity\FilesHooks->addNotificationsForFileAction("/Home_auf_Serve ... G", "file_deleted", "deleted_self", "deleted_by")
18. /var/www/html/apps/activity/lib/FilesHooksStatic.php line 63
    OCA\Activity\FilesHooks->fileDelete("/Home_auf_Serve ... G")
19. /var/www/html/lib/private/legacy/OC_Hook.php line 110
    OCA\Activity\FilesHooksStatic::fileDelete({run: true,path: ... "})
20. /var/www/html/lib/private/Files/View.php line 1274
    OC_Hook::emit("OC_Filesystem", "delete", {run: true,path: ... "})
21. /var/www/html/lib/private/Files/View.php line 1144
    OC\Files\View->runHooks(["delete"], "/Home_auf_Serve ... G")
22. /var/www/html/lib/private/Files/View.php line 718
    OC\Files\View->basicOperation("unlink", "/Home_auf_Serve ... G", ["delete"])
23. /var/www/html/apps/dav/lib/Connector/Sabre/File.php line 466
    OC\Files\View->unlink("/Home_auf_Serve ... G")
24. /var/www/html/3rdparty/sabre/dav/lib/DAV/Tree.php line 183
    OCA\DAV\Connector\Sabre\File->delete()
25. /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 295
    Sabre\DAV\Tree->delete("files/rettich/H ... G")
26. /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpDelete(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
27. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 474
    Sabre\DAV\Server->emit("method:DELETE", [Sabre\HTTP\Requ ... }])
28. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 251
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
29. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 319
    Sabre\DAV\Server->start()
30. /var/www/html/apps/dav/lib/Server.php line 325
    Sabre\DAV\Server->exec()
31. /var/www/html/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
32. /var/www/html/remote.php line 167
    require_once("/var/www/html/a ... p")

DELETE /remote.php/dav/files/rettich/Home_auf_Server/Bilder/Bildschirmhintergruende/Nebel.JPG
from 46.223.249.55 by rettich at 2020-11-01T14:34:59+00:00

Kann mir jemand einen Tip geben?
Oder kann mir jemand, bei dem’s läuft, schreiben wie er vorgegangen ist?

Vielen Dank schon mal für’s Mitdenken.

Gruß,
Mathias

Hallo Mathias,

hast Du in den Optionen des External Storage das Überprüfen der ACLs aktiviert? Dann könntest Du versuchen das zu deaktivieren.

Viele Grüße
Klaus

Hallo Klaus,
vielen Dank für deinen schnellen Tip.

Da habe ich beide Varianten ausprobiert.
Bei dir funktioniert die Nextcloud, oder? Das heißt, dass bei mir irgendetwas anders sein muss…
Gruß,
Mathias

Ich glaube, ich hab’s :smiley:
Man muss die In-Memory-Datenbank redis einsetzen. Die soll nicht nur schneller sein, mit redis habe ich bisher keine Fehler mehr mit den Samba-Shares gehabt.
Hier sind meine Docker-Files:
Dockerfile:

FROM nextcloud:stable-apache
RUN apt-get update && apt-get install -y procps smbclient && rm -rf /var/lib/apt/lists/*

Das braucht man, damit nextcloud mir Samba-Shares umgehen kann.

docker-compose.yml:

version: '3'

volumes:
  html:

services:

  redis:
    image: redis:alpine
    restart: always

  nextcloud:
    container_name: mynext
    image: rettich/nextcloud
    ports:
      - "127.0.0.1:7779:80"
    volumes:
      - ./html:/var/www/html
    environment:
      - REDIS_HOST=redis
    restart: always

  cron:
    image: rettich/nextcloud
    restart: always
    volumes:
      - ./html:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - redis

networks:
  default:
    external:
      name: staufer

In dieser Nextcloud greife ich auf die mariadb meines mrbs-Systems zu. Daher ist hier keine DB zu sehen. Das Docker-Image rettich/nextcloud habe ich im Dockerverzeichnis /srv/docker/nextcloud mit docker build -t rettich/nextcloud . erstellt.
Hoffentlich hilst’s dem einen oder anderen weiter.
Gruß,
Mathias

Hallo Mathias,

danke für die Lösung!
Bei meinen Installationen habe ich Redis immer aktiviert. Deshalb konnte ich Deinen Fehler wohl nicht reproduzieren.

Viele Grüße
Klaus