[Tip] Nextcloud Client fragt immer wieder das Passwort ab

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

[Tip] Nextcloud Client fragt immer wieder das Passwort ab

Beitrag von heisenberg » 27.03.2024 19:21:06

Problem

Bei wirklich jedem Start hat der Nextcloud-Client (Bookworm) mir das Passwort zu beiden angebundenen NC-Servern erneut abgefragt.

Die Lösung

Es muss eine Passwort/Keyring-Anwendung installiert sein, damit der Client die Zugangsdaten dort drin speichert.

Ich hatte vor kurzem mit meinem Arbeitsplatzrechner ein größeres Problem u. a. auch wegen dem Debiangnome-keyring-manager, weswegen ich den deinstalliert hatte. Mittlerweile habe Debian Bookworm mal komplett neu installiert - mit einer Paketliste ohne die Anwendung. Nachdem ich das Paket jetzt wieder installiert habe, funktioniert alles wieder einwandfrei.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
syntaxys
Beiträge: 16
Registriert: 27.03.2024 20:38:34
Wohnort: Südpfalz
Kontaktdaten:

Re: [Tip] Nextcloud Client fragt immer wieder das Passwort ab

Beitrag von syntaxys » 28.03.2024 09:46:10

Das folgende Konzept bindet die NextCloud-Instanz auch bei einem Linux ohne Desktop oder ohne eine App von Nextcloud ein.

Bei Bedarf das davfs nachinstallieren:

Code: Alles auswählen

sudo apt-get install davfs2
Die Frage bei der Installation, ob das SUID-Bit in der Datei /sbin/mount.davfs gesetzt werden soll, mit “Ja” beantworten.
Wenn auch normale Nutzer ihre NC-Ressourcen mounten können sollen, diese in die Gruppe aufnehmen:

Code: Alles auswählen

sudo usermod -aG davfs2 `nutzername`
Falls vorher root, nun als Nutzer anmelden:

Code: Alles auswählen

su - nutzername
Verzeichnisse und Dateien anlegen:

Code: Alles auswählen

mkdir ~/nextcloud ~/.davfs2
Die Datei mit den Credentials anlegen:

Code: Alles auswählen

touch ~/.davfs2/secrets
und mit

Code: Alles auswählen

chmod 600 ~/.davfs2/secrets
sichern.

Diese Datei enthält z. B. http(s)://meinecloud.domain.tld/remote.php/dav/files/nutzername nutzername passwort

Falls vorher nutzername, nun mit exit zurück zu root-Rechten und die /etc/fstab ergänzen: http(s)://meinecloud.domain.tld/remote.php/dav/files/nutzername /home/nutzername/nextcloud davfs user,rw,noauto,_netdev 0 0

Nun kann die NC-Instanz – als Benutzer nutzername (!) – mit

Code: Alles auswählen

mount ~/nextcloud
eingebunden werden. Versucht man das von root aus, klappt das nicht ohne Abfrage der Credentials.
Ich habe es daher auch noch nicht hinbekommen, daß WebDav-Remotes wie CIFS schon beim Booten eingebunden werden. Vielleicht hat von Euch jemand eine Idee, wie das machbar ist. Aktuell versuche ich einen systemd Service mit den Rechten von nutzername zu starten, aber das klappt bis jetzt nicht wirklich.
Es geht bei mir um lokale VMs mit Debian 11/12 ohne grafische Oberfläche, in denen ich zwar einen normalen Nutzer angelegt habe, mich jedoch immer mit root anmelde.

LG/A

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: [Tip] Nextcloud Client fragt immer wieder das Passwort ab

Beitrag von uname » 28.03.2024 10:36:44

syntaxys hat geschrieben:Ich habe es daher auch noch nicht hinbekommen, daß WebDav-Remotes wie CIFS schon beim Booten eingebunden werden. Vielleicht hat von Euch jemand eine Idee, wie das machbar ist.
Ich nutze Nextcloud aber nicht per WebDAV. Bzgl. deines Problems habe ich vielleicht hier was gefunden. Ich habe deine Zeile mal entsprechend umgeändert. Ob es hilft, weiß ich nicht.

Code: Alles auswählen

http(s)://meinecloud.domain.tld/remote.php/dav/files/nutzername /home/nutzername/nextcloud davfs noauto,_netdev,rw,uid=user,gid=group,x-systemd.automount,x-systemd.mount-timeout=10s,x-systemd.idle-timeout=10m 0 0

Benutzeravatar
syntaxys
Beiträge: 16
Registriert: 27.03.2024 20:38:34
Wohnort: Südpfalz
Kontaktdaten:

Re: [Tip] Nextcloud Client fragt immer wieder das Passwort ab

Beitrag von syntaxys » 28.03.2024 12:11:38

Danke, den Beitrag hatte ich auch gefunden, aber das klappt nicht. Ich bekomme beim Booten z. B. diese Meldung:

Code: Alles auswählen

Mar 28 12:00:43 debian11-vm mount.davfs: davfs2 1.6.0
Mar 28 12:00:43 debian11-vm systemd[1]: home-syntaxys-nextcloud.mount: Mount process exited, code=exited, status=255/EXCEPTION
Mar 28 12:00:43 debian11-vm systemd[1]: home-syntaxys-nextcloud.mount: Failed with result 'exit-code'.
Mar 28 12:00:43 debian11-vm systemd[1]: Failed to mount /home/syntaxys/nextcloud.
Mar 28 12:00:43 debian11-vm systemd[1]: Dependency failed for Remote File Systems.
Mar 28 12:00:43 debian11-vm systemd[1]: remote-fs.target: Job remote-fs.target/start failed with result 'dependency'.
EDIT, das ist die Lösung:
Es reicht nicht, daß die Credentials für den WebDav-Mount im Nutzerverzeichnis ~/.davfs2/secrets hinterlegt sind. Wenn das Remote-FS auch von root eingebunden werden soll, dann müssen die Zugangsdaten auch in /etc/.davfs2/secrets hinterlegt sein. Ich hatte den Fehler gemacht, diese in /root/.davfs2/secrets zu hinterlegen, dort werden sie aber nicht ausgelesen.

Nun kann kann man sich einen Dienst anlegen, der die Nextcloud-Instanz beim Booten einbindet:

Code: Alles auswählen

root@debian11:/# mkdir -p /mnt/webdav/nextcloud/username
root@debian11:/# cat <<EOT >> /etc/systemd/system/mnt-webdav-nextcloud-username.mount
Description=Mount WebDAV Service
After=network-online.target
Wants=network-online.target

[Mount]
What=http(s)://meinecloud.domain.tld/remote.php/dav/files/nutzername
Where=/mnt/webdav/nextcloud/username
Options=uid=1000,file_mode=0664,dir_mode=2775,grpid
Type=davfs
TimeoutSec=15

[Install]
WantedBy=multi-user.target
EOT
Bitte username und uid entsprechend anpassen und dem Einhängepunkt auch die Besitzer-/Nutzerrechte geben.

Code: Alles auswählen

root@debian11:/# systemctl start mnt-webdav-nextcloud-username.mount
root@debian11:/# systemctl enable mnt-webdav-nextcloud-username.mount
root@debian11:/# systemctl status mnt-webdav-nextcloud-username.mount
● mnt-webdav-nextcloud-username.mount - Mount WebDAV Service
     Loaded: loaded (/etc/systemd/system/mnt-webdav-nextcloud-username.mount; enabled; vendor preset: enabled)
     Active: active (mounted) since Fri 2024-03-29 09:42:09 CET; 23min ago
      Where: /mnt/webdav/nextcloud/username
       What: https://meinecloud.domain.tld/remote.php/dav/files/nutzername
      Tasks: 1 (limit: 2280)
     Memory: 2.0M
        CPU: 86ms
     CGroup: /system.slice/mnt-webdav-nextcloud-username.mount
             └─1690 /sbin/mount.davfs https://meinecloud.domain.tld/remote.php/dav/files/nutzername /mnt/webdav/nextcloud/username -o rw uid=1000 file_mode=0664 dir_mo>

Mär 29 09:42:05 debian11 systemd[1]: Mounting Mount WebDAV Service...
Mär 29 09:42:05 debian11 mount.davfs[724]: davfs2 1.6.0
Mär 29 09:42:06 debian11 mount[724]: /sbin/mount.davfs: Warnung: der Server kann Dateien nicht sperren
Mär 29 09:42:09 debian11 systemd[1]: Mounted Mount WebDAV Service.
Fazit:
Bei einer grafischen Oberfläche und der Nutzung der Nextcloud-App (die ja auch nur per WebDav arbeitet) oder eines anderen Mount-Managers für Remote-Systeme, verwendet man die Lösung von @heisenberg wie eingangs erwähnt.
Wenn man keine grafische Oberfläche nutzt, kann man die Nextcloud-Instanz per System-Service beim Booten einbinden, so wie hier beschrieben. Dazu sind die Vorarbeiten nötig, wie in meiner Antwort dazu hier beschrieben.

Der Vorteil bei der Einbindung von Nextcloud per WebDav ist die konsistente Synchronisation des Datenbestands.

Viele Erfolg damit!
LG/A

@heisenberg:
Sorry, ich kann leider mangels Rechten für Neulinge, die eingehegt werden müssen :D , nicht auf PMs antworten, daher mache ich das hier.
Ich fand, daß der Beitrag thematisch hierher passt, weil es ja grundsätzlich um's automatische Mounten von Nextcloud-Instanzen beim Booten geht – ob jetzt mit oder ohne grafische Oberfläche ist ja letztlich egal – und ich das gleiche Problem habe. Aber wenn der Beitrag hier nicht passt, dann kann den gerne jemand umhängen.

Antworten