Jump to content

unRaid, vmUbuntu mit Seafile CLI Client, Share SMB-Freigabe - Problem(lösung!)


KnuspriGER

Recommended Posts

Moin!

 

mein unRaid (Version: 6.9.2) ist noch 16 Tage im Testmodus, aber bisher bin ich schon schwer angetan vom System ;)

 

Kommen wir zu meinem "Projekt": alte Windows VM mit Seafile, ersetzen durch Linux + Seafile CLI + Share-Freigabe

Im Detail:

- unRaid:
     - Share "Seafile", freigegeben(SMB) für user:scan (read-write)

- vm Ubuntu Server 20.04.3:
     - Unraid Share: /mnt/user/Seafile/ (die SMB-Freigabe)
     - Unraid Mount tag: seafile
     - in Ubuntu eingebunden/gemountet durch:
          > sudo mkdir /mnt/seafile
          > sudo nano /etc/fstab
               Eintrag hinzugefügt: seafile /mnt/seafile 9p msize=262144,trans=virtio,version=9p2000.L,_netdev,rw 0 0
          (Inhalt der Freigabe "Seafile" ist nun in Ubuntu unter "/mnt/seafile" sichtbar und beschreibbar)
          > sudo wget https://linux-clients.seafile.com/seafile.asc -O /usr/share/keyrings/seafile-keyring.asc
          > sudo bash -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/seafile-keyring.asc] https://linux-clients.seafile.com/seafile-deb/focal/ stable main' > /etc/apt/sources.list.d/seafile.list"
          > sudo apt update
          > sudo apt install seafile-cli
          > mkdir ~/seafile-client
          > seaf-cli init -d ~/seafile-client
          > seaf-cli start
          > seaf-cli sync -l 'Seafile-Bibliothek-ID-siehe-in-Web-URL' -s 'https://myseafile.org' -d '/mnt/Seafile' -u '[email protected]' -p 'MyPassword'
          (Seafile synchronisiert die Bibliothek mit /mnt/Seafile ohne Fehlermeldung)

- Brother Drucker/Scanner:
     - scan-to-smb: an \\unRaid-IP\Seafile\ scannen (user:scan) funktioniert. scan-PDF wird gespeichert

 

Kommen wir zu den PROBLEMEN:

1. Brother Drucker/Scanner speichert scan-PDF in der SMB-Freigabe \\unRaid-IP\Seafile\scan.pdf (erfolgreich)

2. in Ubuntu, im mount /mnt/seafile, ist die Datei scan.pdf (vorhanden) (bearbeiten und löschen ist möglich)

3.A wenn Seafile(seaf-cli) bereits lief, dann synchronisiert er die neue scan.pdf nicht mit dem Seafile-Server.

3.B wenn aber Seafile(seaf-cli) die Bibliothek desynchronisiert und dann erneut synchronisiert, dann klappt es und die scan.pdf landet auf dem Seafile-Server.

 

In die andere Richtung funktioniert es auch nur bedingt:

1. am Windows-Client lokal im Ordner Seafile ein Dokument erstellen, z.B. test.txt -> wird mit Seafile-Server synchronisiert

2. der ubuntu-Seafile-Client lädt die test.txt herunter und speichert diese im mount /mnt/seafile

3. in der SMB-Freigabe \\unRaid-iP\Seafile sehe ich die Datei test.txt, die ich:

     - umbenennen kann (wird dann jedoch nicht mehr durch seafile synchronisiert)

     - löschen kann (wird mit Seafile auch nicht synchronisiert, bleibt auf dem Seafile-Server bestehen)

     - editieren kann (wird dann jedoch nicht mehr durch seafile synchronisiert)

 

Dieses Verhalten kann ich nicht nachvollziehen.

Und habe nicht mal eine Idee wo ich ansetzen kann/soll.

 

Hat jemand einen Tipp? 🙂

 

Edited by KnuspriGER
Link to comment

Seafile ist doch von der Funktionsweise wie owncloud und nextcloud, oder?

Der Datenpfad liegt irgendwo und das Programm bekommt bzw liefert seine Informationen über eine Datenbank die im Endeffekt die Infos hat.

Also Name, Speicherort, Berechtigungen....

 

Wenn Du hergehst und über eine smb Freigabe etwas änderst dann weiß Deine Anwendung nichts davon.

Unter Nextcloud nutzt man glaube ich ein plugin namens external storage. Dieses überwacht dann ein Verzeichnis und liefert Infos ans System.

 

 

Link to comment

Soo... ich habe versagt 😪

 

Das Problem ist wohl, dass der von unRaid durchgereichte Share (in den Einstellungen zur VM: Unraid Share + Unraid Mount tag) mit den Berechtigungen(UID+GID) vom unRaid daherkommt, insbesondere die darin erstellen Dateien und Unterordner.

 

Bedeutet:
Seafile (auf der VM laufend) bekommt Dateien mit "komischen" UID und GID settings und möchte diese nicht verarbeiten.

 

Lösungs(ver)suche:

Mein unRaid-Share (in unRaid per SMB freigegeben) ist durch Benutzer+Passwort geschützt.

Für diesen Benutzer (in meinem Fall: seafile-user) habe ich die UID herausgesucht:

 - entweder: Konsole auf dem unRaid: sudo id seafile-user

 - oder: in der Linux-VM wo Seafile CLI installiert ist im gemounteten Share die UID+GID der Dateien auslesen/anzeigen: ls -lu /mnt/seafile

Bei mir waren diese wie folgt: UID:1001(seafile-user) und GID:100(users)

 

Ich habe dann den User seafile-user im Linux-VM mit der UID 1001 erstellt und ihm danach die Gruppe users(GID:100) zugewiesen.

sudo adduser seafile-user --uid 1001

sudo usermod -a -G users seafile-user

Half nicht. Auch nicht mit einigen Variationen (habe jetzt nicht mehr alle im Kopf).

 

Ebenso half es nicht den Share per Eintrag in der /etc/fstab wie folgt einzubinden (mehrere Varianten ausprobiert, einzelnt natürlich):
seafile       /mnt/seafile    9p   msize=262144,trans=virtio,version=9p2000.L,_netdev,gid=100,uid=1001,rw    0    0

seafile       /mnt/seafile    9p   msize=262144,trans=virtio,version=9p2000.L,_netdev,gid=1000,uid=1000,rw    0    0

seafile       /mnt/seafile    9p   msize=262144,trans=virtio,version=9p2000.L,_netdev,gid=0,uid=0,rw    0    0

 

 

Am Ende habe ich es nun doch so gemacht wie eigentlich nicht gewollt:

- Samba auf Linux-VM installiert

- SMB-Freigabe über Samba erstellt und freigegeben

- SMB-Freigabe getestet

- Seafile CLI installiert

- Seafile Sync mit einem Ordner in der SMB-Freigabe eingerichtet:

    seaf-cli sync -l 'Seafile-Bibliothek-ID-siehe-in-Web-URL' -s 'https://myseafile.org' -d '/mnt/smb-freigabe/Seafile' -u '[email protected]' -p 'MyPassword'

 

...läuft!

 

Leider muss ich für die Benutzerverwaltung dann immer auf die VM, falls ich in Zukunft was am Seafile-SMB-Share ändern möchte.

Aber nunja, immerhin funktioniert es.

Link to comment
  • KnuspriGER changed the title to unRaid, vmUbuntu mit Seafile CLI Client, Share SMB-Freigabe - Problem(lösung!)
On 2/5/2022 at 12:29 AM, KnuspriGER said:

Seafile(seaf-cli)

Was ist das? Ein Container? Eine VM?

 

Du kannst jeden SMB Share so mounten als wärst du ein anderer User. Ich mounte zb NPM so, dass ich beim Ändern der Dateien Root-Rechte anwenden kann, weio NPM selbst keine unRAID Standardrechte verwendet:

https://forums.unraid.net/topic/119311-docker-img-im-appdata-folder/?do=findComment&comment=1091626

Link to comment

Hi mgutt,

 

es ist eine VM, genauer: DietPi v8.1 basierend auf Debian 10 (Buster).

Auf diesem VM-Linux läuft Seafile als Anwendung (seaf-cli), siehe ersten Post.

 

Du meinst den unRaid Share (SMB-Freigabe) übers Netzwerk ins die VM mounten?

Könnte man auch machen, hm...

 

Ich schaue mir mal gleich deinen Link an, danke :)

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.

×
×
  • Create New...