Problem bei der Einrichtung eines Shares

  • Hallo zusammen,

    eines vorausgeschickt: Ich bin ein ziemlicher Noob, was die Nutzung von Linux angeht und ich habe ein Problem, das mich schon einige Tage sehr beschäftigt. Vielleicht könnt ihr ja helfen?!

    Ausgangssituation

    Ich habe einen Rechner mit Linux Mint, den ich als Arbeitsplatzrechner betreibe. Ich nenne ihn hier mal der Einfachheit halber "Client". Daneben betreibe ich auf einem anderen Rechner auf einer virtuellen Maschine unter Proxmox 8.0 einen Linux Server (Ubuntu 22.04.3/ IP-Adresse 192.168.0.74), auf dem die Anwendung Paperless-NGX in einer Docker-Umgebung läuft. Das funktioniert auch alles so weit.

    Nun möchte ich auf dem Server die Verzeichnisse paperless-ngx/consume und paperless-ngx/export als Shares auf dem Client einrichten. Das consume-Verzeichnis wird von Paperless-NGX überwacht, dort hinein kommen neu zu archivierende Dokumente. Ziel ist es, mit dem lokal angeschlossenen Scanner in dieses Verzeichnis zu scannen und die Dokumente dann durch Paperless abräumen zu lassen.

    Ich habe daher eine Samba-Umgebung auf dem Server eingerichtet und möchte die beiden Verzeichnisse nun dauerhaft auf dem Client mounten. Und genau das bringt mich an den Rand des Wahnsinns: Der Server ist nicht im Netzwerk-Ordner des Clients sichtbar, kann aber - z.B. per SSH - problemlos aufgerufen werden. Versuche ich zunächst einmal das temporäre Mounten per Aufruf "smb://192.168.0.74/paperless-ngx/consume" schlägt das konsequent fehl, mit dem Hinweis "Datei oder Verzeichnis nicht gefunden".

    Per SFTP komme ich mit Filezilla allerdings auf das gewünschte Verzeichnis auf dem Server. Hat jemand eine Idee, wie ich das Problem lösen kann?

  • Danke für die schnelle Antwort.

    Meine smb.conf sieht so aus:

    [global]
    workgroup = smb
    security = user
    map to guest = Bad Password

    [homes]
    comment = Home Directories
    browsable = no
    read only = no
    create mode = 0750

    [public]
    path = /paperless-ngx/consume/
    public = yes
    writable = yes
    comment = smb share
    printable = no
    guest ok = yes

    Gestartet sollte der SAMBA-Dienst sein. Nach der Anpassung der smb-conf hatte ich einen Restart mit "sudo systemctl restart smbd.service" gemacht.

    Was mich allerdings etwas verwundert ist, dass der Befehl sudo chmod 777 /paperless-ngx/consume/ zu dieser Fehlermeldung führt: chmod: cannot access '/paperless-ngx/consume/': No such file or directory.

    Wohlgemerkt: der Befehl wurde auf dem Server in einer SSH-Session abgesetzt. Mit dem Befehl "ls" im Verzeichnis paperless-ngx wird das angeblich nicht vorhandene Verzeichnis aber gelistet

    user@paperless:~$ cd paperless-ngx
    user@paperless:~/paperless-ngx$ ls
    back_docker-compose.env docker-compose.env export
    consume docker-compose.yml
    user@paperless:~/paperless-ngx$

  • Was gibt den

    Code
    ls -l /paperless-ngx

    aus?

    Mit

    Code
    systemctl status samba

    kannst du schauen ob der Samba Dienst läuft.

    Wenn Samba läuft kommst du mit smb://192.168.0.74 auf den Server oder kommt eine User Abfrage?

    Noch dazu hast du in deiner smb.conf

    Code
    [public]
    path = /paperless-ngx/consume/

    stehen, also heißt deine Freigabe nicht paperless-ngx sondern public

  • Code
    Status: "smbd: ready to serve connections..."

    aber

    Code
    user@paperless:~$ ls -l /paperless-ngx
    ls: cannot access '/paperless-ngx': No such file or directory

    Eine User-Abfrage kommt nur, wenn ich das Verzeichnis mit angebe:

    Code
    smb://192.168.0.74 => keine Nutzerabfrage
    smb://192.168.0.74/paperless-ngx/consume => Nutzerabfrage und danach die Fehlermeldung
  • Also wenn eine Userabfrage kommt dann läuft Samba was ja auch die Status Meldung aneigt.

    Na dann gibt es dass Vereichnis nicht ;) Der Teufel steckt im Datail.

    Zitat

    user@paperless:~$ cd paperless-ngx
    user@paperless:~/paperless-ngx$ ls

    hmm ist schwer darzustellen, aber geh mal ins Verzeichnis und gib pwd (print work directory) ein.

    Dann wirst du sehen dass du einen falschen Pfad benutzt.

    wie zu erkennen ist hast du eine sogenannte Tilde ~ nach deinem User@Host: - Dass bedeutet dass du dich in deinem Home Directory also /home/[USER] befindest, Auch dein erstellter Ordner ist in diesem Vereichniss nicht in /

    Also gibst du immer den falschen Pfad an, auch in der smb.conf

    Noch dazu wie bereits geschrieben ist der Freigabename in der Samba Config der Name in den [ ] Eckigen Klammern, also in deinem Fall public

  • Du kannst von deinem Client aus den Befehl smbclient -L 192.168.0.74 absetzen, dann siehst du alle Freigaben des Servers.

    So siehts dann in etwas aus:

    Code
    $ smbclient -L 192.168.178.50
    Password for [WORKGROUP\xxxxx]:
    
    	Sharename       Type      Comment
    	---------       ----      -------
    	Musik           Disk      Musik
    	Serien          Disk      Serien
    	Konzerte        Disk      Konzerte
    	Consume         Disk      Import von Dokumenten nach Paperless
    	Archiv          Disk      Dokumentarchiv aus Paperless
  • Danke sehr!

    Ich bin nur nicht so ganz sicher, ob das Ergebnis nun positiv oder nicht so sehr ist:

    Code
    smbclient -L 192.168.0.74
    Password for [WORKGROUP\user]:
        Sharename       Type      Comment
        ---------       ----      -------
        paperless       Disk      smb share
        IPC$            IPC       IPC Service (Samba 4.15.13-Ubuntu)
        user         Disk      Home Directories
    SMB1 disabled -- no workgroup available
  • Wow!! Ich bin tief beeindruckt und sehr dankbar: Es klappt tatsächlich nun, das Verzeichnis zu mounten. Jetzt muss ich mich nur noch um das Export-Verzeichnis kümmern und ein dauerhaftes Mounten hinbekommen. Herzlichen Dank an alle, die sich des Problems angenommen haben.

  • Jetzt muss ich mich nur noch um das Export-Verzeichnis kümmern und ein dauerhaftes Mounten hinbekommen.

    Ist ja mehr oder weniger nur Copy & Paste. Die Freigabe für "consume" in der smb.conf kopieren und mit neuem Namen und Pfad für "export" einfügen.

    Nach einer Änderung noch Samba neu laden, damit die Änderungen wirksam werden

    Beispiel:

  • Ich hatte gehofft, das wäre es nun gewesen... leider nein, leider gar nicht.

    Wie ist der aktuelle Stand?

    Die beiden Shares "paperless-consume" und "paperless-export" sind eingerichtet und werden auch brav bei jedem neuen Start automatisch angemeldet. Da also mal einen Haken dran, so sollte es sein.

    Nun habe ich auf dem Client im Dateimanager diese beiden neuen Einträge und kann sie mir ansehen, nur nutzen geht leider nicht.

    Ich habe die beiden Mount-Punkte unterhalb des Home-Bereichs des Nutzers angelegt, also z.B. /home/user/consume, analog für das Export-Verzeichnis. Leider tragen bei beiden Ordner im Dateimanager ein Schloss-Symbol, d.h. ich kann sie mit Nutzerrechten nicht aufrufen. Versuche ich die Rechte auf dem Client mit Administrationsrechten anzupassen, passiert nichts:

    Code
    Client:
    sudo chmod 777 consume => es passiert buchstäblich nichts:
    drwxr-xr-x 2 root    root       0 Dez  9 11:33  consume

    Nun hatte ich gelesen, dass die Rechte für gesharte Verzeichnisse auf dem Host vorgegeben werden und es daher dort versucht:

    Code
    Host:
    drwxrwxrwx 2 user user 4096 Dez  9 10:33 consume

    Wie man sieht, laufen die Rechte auseinander. Was mache ich falsch oder besser, was muss ich tun, damit es richtig läuft? Ziel ist, dass der angemeldete Nutzer (auf dieser Maschine gibt es nur einen) ohne administrative Rechte in das "consume"-Verzeichnis schreiben darf...

    Am Ende soll der lokal installierte und prima funktionierende EPSON DS-410 Scanner in dieses Verzeichnis scannen und das Scanergebnis durch Paperless-NGX auf dem Server abgeräumt und zu neuen Dokumenten im Archiv werden.

  • Mountest du die shares über die fstab? Also beim Hochfahren automatisch mit mounten lassen? Wenn ja lass hier bitte Mal den Eintrag sehen.

    Außerdem nutzt du den eigentlich den falschen Befehl, denn 777 setzen ist nicht die schönste lösung.

    Du willst ja den Eigentümer des Verzeichnisses wechseln und zwar von root auf deinen User, dafür nutzt man

    Code
    chown [User:Gruppe] Verzeichniss

    Wenn der Ordner Unterordner enthält würde ich noch die Option -R (Recursiv und ja es ist ein Großes R) benutzen.

  • Danke für den Tipp... wie gesagt, ich bin noch ein arger Noob :)

    Hier die beiden fstab-Einträge:

    Code
    //192.168.0.74/paperless-consume /home/user/consume cifs credentials=/home/user/.smbcredentials  0 0
    
    //192.168.0.74/paperless-export /home/user/export cifs credentials=/home/user/.smbcredentials  0 0
  • Füge Mal bitte in der fstab bei den Optionen, also wo auch credentials steht

    Code
    uid=[deinUser],gid=[Gruppe]

    ein. Daran denken zwischen jeder Option muss ein , sein.

    Damit wir beim mounten der Eigentümer des Verzeichnisses festgelegt.

  • Es wird für mich immer merkwürdiger, aber vielleicht hilft das den erfahreneren Anwendern ja weiter:

    Ich habe mal, wie oben vorgeschlagen, in der fstab eine Änderung gemacht:

    Code
    //192.168.0.74/paperless-consume /home/user/consume cifs uid=1000,gid=1000  0 0

    Dies führt nun dazu, dass das Password für den Anwender "root" angefordert wird, der weder auf dem Client, noch auf dem Server so besteht. Zur UID=1000 wird der "user" (er heißt nicht user, aber diese Konstante repräsentiert ihn durchgängig in allen obigen Listings) über den Befehl id ausgegeben, sowohl auf dem Client wie auch auf dem Server:

    Code
    user@Linux-B450-AORUS-ELITE:~$ id
    uid=1000(user) gid=1000(user)... 

    Bevor ich die Änderung in der fstab gemacht hatte, führte der Befehl mount -a dazu, dass die Verzeichnisse zwar gemountet wurden, aber der Besitzer des Verzeichnisses dieser "root" wurde, was durch den Administrator "user" auch nicht wirklich änderbar ist. Die Änderung per CHOWN führte dazu, dass für ein paar Sekunden alles gut schien, dann aber wieder "root" der Besitzer war.

    Code
    drwxr-xr-x 2 root    root       0 Dez  9 11:33  consume

    Helfen diese Info's irgendwem weiter, eine Lösung zu finden?

    Der einzige Anwender "root", der im Zusammenhang mit den verwendeten Maschinen auftaucht, ist auf dem "echten" Host, also der Maschine mit proxmox, auf dem der Server mit Paperless läuft. Aber dort hat root die UID=0 und nicht 1000.

  • Ich habe auch nie gesagt dass du den credential part aus deiner fstab löschen sollst. Dass uid und gid ist dazu da um dass geünschte share mit dem Brechtigungen des angegebene User und mit der angegeben Gruppe bei dir lokal zu mounten. Denn ansosnten wird der User root benutzt.

    Die Daten in deiner credential Datei sind dann der User und dass PW des Users der dass share mounten möchte, also der Samba Login am Server.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!