Nextcloud (19.0.3~ynh1) : impossible de partager ou recevoir des fichiers de serveurs distants

Mon serveur YunoHost

Matériel: Serveur dédié
Version de YunoHost: 4.0.8.2
Version de Nextcloud: 19.0.3~ynh1
J’ai accès à mon serveur : En SSH | Par la webadmin
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : oui (changement port SSH, autorisation des symlinks dans Nextcloud)

Description du problème

Salut,

J’ai installé une nouvelle instance sur un nouveau serveur, je ne parviens pas à envoyer/recevoir des fichiers depuis d’autres Nextcloud.

  • Lorsque je tente de partager un fichier ou dossier depuis ce nouveau serveur vers un autre, ces derniers voient apparaitre le partage dans “Partagés avec vous” mais pas dans le menu principal. Ces fichiers/dossiers sont inaccessibles, cliquer dessus renvoie vers une page d’erreur indiquant :

    Fichier non trouvé

    Le document n’a pas pu être trouvé sur le serveur. Peut-être que le partage a été supprimé ou est expiré ?

  • Lorsque je tente de partager un fichier depuis un “vieux” Nextcloud mis à jour vers mon nouveau Nextcloud, le popup suivant apparait : Erreur lors de la création du partage✖

  • Les deux “vieux” Nextcloud communiquent parfaitement entre eux.

  • Les ports habituels sont bien ouverts (sauf le 22).

  • Le Nextcloud problématique a dans ses “Shared multimedia” le dossier /home/yunohost.transmission/completed qui est rescanné à intervalles réguliers avec la commande sudo -u nextcloud php7.3 /var/www/nextcloud/occ files:scan --all

  • J’ai modifié la config nextcloud comme indiqué ici pour autoriser les symlinks -> Nextcloud : liens home et multimedia KO

J’avoue sécher un peu, là.

J’ai comparé les fichiers /var/www/nextcloud/config/config.php d’un Nextcloud fonctionnel et de celui qui est problématique.

Ils sont assez similaires (à l’adresse et au password près), mais la fin diffère légèrement :

  • Sur l’ancien, le fichier se fini par :

    ‘logout_url’ => ‘https://domain.noho.st/yunohost/sso/?action=logout’,
    ‘maintenance’ => false,
    ‘loglevel’ => 2,
    ‘quota_include_external_storage’ => true,
    );

  • Sur le nouveau (non fonctionnel), par :

    //-YunoHost-
    // set logout_url according to main domain
    $main_domain = exec(‘cat /etc/yunohost/current_host’);
    $CONFIG[‘logout_url’] = ‘https://’.$main_domain.’/yunohost/sso/?action=logout’;
    //-YunoHost-

  • De plus, le fichier du Nextcloud non fonctionnel comporte en plus la ligne suivante :

    ’mysql.utf8mb4’ => true,

(ligne relative à l’encodage je présume ?)

J’ai installé la version 20 nextcloud (en béta sur le git yuno correspondant : https://github.com/YunoHost-Apps/nextcloud_ynh), pas de changement.

Je viens de créer des fichiers .md et retenté un partage vers un autre nextcloud puis d’accéder aux fichiers depuis celui-ci (toujours sans succès, message d’erreur comme quoi le fichier est Non-trouvé).

Voici les seule lignes du jours dans /home/yunohost.app/nextcloud/data/nextcloud.log :

https://paste.yunohost.org/qakeparuxu.json

(j’ai volontairement caviardé mon IP en xx.xx.xx.xx et le nom du user nextcloud)

Bonne nouvelle, il y a le mot “Error” qui apparait :smiley:

Moins bonne nouvelle, je n’y comprends rien :frowning:

Notons enfin que le partage via un lien envoyé par mail fonctionne parfaitement.

J’ai fini par trouver : mon instance problématique était sur un certificat autosigné.

Une fois installé un certificat Let’s Encrypt, tout est rentré dans l’ordre.

Bon, apparemment ce n’est pas si rentré dans l’ordre que ça :confused:
Le dossier apparait bien dans mon nextcloud cible, mais impossible de rentrer dedans.

Voici déjà le log : https://paste.yunohost.org/avafojaril.json

  • Première ligne : partage du dossier “Torrents” qui est le dossier /home/yunohost.transmission/completed de l’application Transmission. Celui-ci est monté sous Nextcloud en tant que Stockage Externe.
  • Seconde ligne : ce qui se passe quand je tente de rentrer dans le dossier (qui est taggué “En attente”) à partir de mon Nextcloud cible (celui à qui j’ai partagé le dossier).

C’est un gros dossier (plusieurs centaines de Go), qui contient des sous dossiers, des fichiers, etc…

J’ai tenté de partager uniquement des sous-dossiers :

  • Je retrouve la première ligne dans le log
  • En revanche j’accède au bout d’une seconde ou deux à ce dossier et je peux ouvrir ou télécharger des fichiers (certains de plusieurs Go).

Je pense à un soucis d’autorisation (il y a une erreur 403 lors du partage du dossier, avant même d’y accéder).

J’ai donc été voir les permissions des dossiers sur le serveur source en faisant un ls -l :

  • le dossier principal (/completed) renvoi ceci :
    drwxrwxr-x+ 12 debian-transmission www-data 4096 Nov 14 17:58 completed

  • Or, les sous-dossiers (dont le partage fonctionne), ont un second debian-transmission à la place du www-data (exemple avec un dossier contenant des ISO) :
    drwxrwxr-x+ 6 debian-transmission debian-transmission 4096 Nov 14 14:15 Isos

Pourrait-il y avoir un soucis avec le groupe ?

J’ai aussi remarqué que j’ai 4096 partout sauf pour un sous-dossier (12288). Est-ce la taille des block ? Si oui, le fait qu’un des sous-dossier renvoie 12288 alors que le dossier “père” a 4096 peut-il être source de bug ?