Monter un répertoire Nextcloud sous Debian avec davfs2
Dave et fesses
Continuons dans la documentation de choses pratiques que j'utilise. Je fais tourner une petite instance Nextcloud sur un serveur dédié, voyons aujourd'hui comment monter le répertoire d'un utilisateur Nextcloud dans le système de fichiers de Debian via davfs2
, un utilitaire permettant d'accéder à des ressources WebDAV et de les monter comme une partition classique.
Première chose à faire, se préparer depuis son compte Nextcloud. On commence par récupérer l'URL d'accès à distance au serveur WebDAV (accessible via les paramètres de Fichiers
dans l'interface de Nextcloud). Par défaut, cet URL est du type : https://example.org/nextcloud/remote.php/webdav/
. Deuxième chose à faire, créer un mot de passe pour cette application. Cela permet d'éviter d'utiliser son mot de passe utilisateur et il est aisé de le révoquer en cas de soucis. Donc dans les paramètres de l'utilisateur, section Sécurité, on doit avoir quelque chose comme ça :

On entre le nom de l'application (c'est purement informatif, on peut donc mettre ce que l'on veut), on clique sur Créer un nouveau mot de passe d'application
et on récupère le mot de passe généré (attention, il sera impossible de le récupérer ensuite, pensez à le stocker dans votre gestionnaire de mot de passe préféré).
Tout est bon côté Nextcloud, passons à Debian. La procédure que je vais décrire montera le répertoire en tant que root
, les commandes décrites dans la suite de ce billet sont donc exécutés en tant que superutilisateur.
On commence par créer le répertoire qui servira de point de montage :
# mkdir /mnt/nextcloud
Et on installe davfs2
:
# apt-get install davfs2
L'installeur nous demande si d'autres utilisateurs que root
pourront monter des répertoires. On répond par la négative (sachant que c'est réversible) :

Il y a quelques paramètres à éditer dans /etc/davfs2/davfs2.conf
:
...
use_locks 0
...
cache_size 500 # MiByte
...
gui_optimize 1
Ceci mérite quelques remarques : Nextcloud ne gère pas les verrous de fichiers de WebDAV, on les désactive donc. Par ailleurs, le cache par défaut de davfs2
est de 50 Mo ce qui est faible, on lui en donne 500 Mo (ce qui est suffisant pour moi, n'hésitez pas à adapter). Enfin lorsqu'un fichier est ouvert, davfs2
vérifie si une nouvelle version est disponible sur le serveur. Le problème étant que les interfaces graphiques ayant tendance à ouvrir tous les fichiers, cela peut très rapidement mener à des ralentissements. En activant gui_optimize
, davfs2
essaie de récupérer les informations nécessaires en une seule requête PROPFIND
.
La configuration pure de davfs2
est terminée. Reste à lui donner les informations d'authentification nécessaires pour se connecter. Ça ce passe dans /etc/davfs2/secrets
. On ajoute en fin de fichier :
https://example.org/nextcloud/remote.php/webdav/ <Nom d'utilisateur Nextcloud> <le mot de passe généré précédemment>
Au passage, on vérifie que les droits d'accès à ce fichier sont corrects (on doit avoir 600) :
# ls -lh /etc/davfs2/secrets -rw------- 1 root root 2,7K févr. 10 19:30 /etc/davfs2/secrets
C'est presque terminé. Afin que d'autres utilisateurs que root
puissent écrire dans le futur montage, on change le groupe de /mnt/nextcloud
:
# chown root:davfs2 /mnt/nextcloud
et on ajoute à ce groupe les utilisateurs qui auront un droit d'écriture :
# usermod -a -G davfs2 john
Il nous reste à ajouter le montage dans /etc/fstab
:
https://example.org/nextcloud/remote.php/webdav/ /mnt/nextcloud davfs nouser,noauto,x-systemd.automount,x-systemd.device-timeout=10,_netdev,file_mode=774,dir_mode=775,uid=root,gid=davfs2 0 0
noauto,x-systemd.automount
permet de dire à systemd
de monter la partition uniquement lors du premier accès à cette dernière et non pas au démarrage (pour ne pas trop le ralentir). x-systemd.device-timeout
indique le temps à attendre.
Normalement à ce stade, tout est terminé. Étant donné que systemd
est impliqué, on peut lancer les 2 commandes suivantes, à tout hasard, afin de satisfaire la Bête :
# systemctl daemon-reload # systemctl restart remote-fs.target
Et on peut enfin monter le répertoire :
# mount /mnt/nextcloud
On vérifie ensuite, d'abord depuis un terminal, que root
peut lire et écrire des fichiers, on passe ensuite aux utilisateurs du groupe davfs2
. Enfin, on teste depuis une interface graphique que le répertoire est accessible, lisible et que l'utilisateur peut y déposer des fichiers. Attention, Nextcloud ne gérant pas les verrous WebDAV, si plusieurs utilisateurs travaillent dans le répertoire en même temps, ils peuvent avoir quelques surprises si le même fichier est édité. On peut à tout hasard redémarrer la machine afin de vérifier que tout fonctionne encore.