What app is this about, and its version: Nextcloud, 33.0.2~ynh1 What YunoHost version are you running: 12.1.39 What type of hardware are you using: Raspberry Pi 3, 4+
Describe your issue
Hi,
I updated Nextcloud and since then, all the files in yunohost.multimedia (which I pointed to an external hard drive) are visible.
That is to say, all the multimedia files (videos, music, etc.) from all users are visible to all users.
It’s a bit of a disaster.
Do you have any idea what could have caused this? (and of course, how I can fix it )
Salut,
j’ai mis nextcloud à jour et depuis, tous les fichiers dans yunohost.multimedia (que j’ai pointé vers un HDD externe) sont visibles.
C’est à dire que tous les fichiers multimedias (video, music…) de tous les utilisateurs sont visibles par tous les utilisateurs.
C’est un peu la cata
Vous avez une idée de ce qui a pu amener à ça? (et bien sûr comment je peux le résoudre )
Salut,
ça ressemble étrangement à des changements de droits.
Etait-ce déjà le cas avant? Comment les as-tu fais pointer? Un disque en ext4?
Ce que tu peux vérifier ce sont les droits et les ACL avec getfacl.
Tu peux regarder aussi du côté du helper multimedia qui doit se trouver dans /usr/share/yunohost/helpers? (ou un nom proche, il faudrait que je vérifie si tu ne trouves pas)/multimedia, et ré-appliquer les ACL avec les commandes setfacl de ce fichier. Attention à bien définir les variables avant s’il y en a dans les commandes (les variables commencent par $ )
Ma réponse n’est pas très précise mais c’est ce qui me vient en tête en 1er. Si tu n’arrives pas à vérifier avec getfacl ou si tu n’y comprends rien, repasse le dire, je regarderai plus en détail ultérieurement (ou un autre yunohost user)
oui j’ai aussi pensé à un changement de droits mais je comprends pas trop pourquoi ni quels droits remettre pour que ça fonctionne correctement.
Oui c’est un disque en ext4
Est ce que c’était le cas avant: oui et non (j’ai rajouté 2 utilisateurs récemment et j’ai procrastiné pour les pointer vers le HDD. ils étaient donc visibles de cette façon. J’espère que c’est pas ça qui a tout déglingué)
J’ai pointé en suivant cette procédure: Ajouter un stockage externe à son serveur | Yunohost
et sinon en effet, je comprends pas grand chose à ce paragraphe:
Ce que tu peux vérifier ce sont les droits et les ACL avec getfacl.
Tu peux regarder aussi du côté du helper multimedia qui doit se trouver dans /usr/share/yunohost/helpers? (ou un nom proche, il faudrait que je vérifie si tu ne trouves pas)/multimedia, et ré-appliquer les ACL avec les commandes setfacl de ce fichier. Attention à bien définir les variables avant s’il y en a dans les commandes (les variables commencent par $ )
mais je vais tenter d’approfondir quand j’ai un peu de temps (si je comprends bien ACL c’est les droits et getfacl c’est la commande pour les gérer. Et grosso modo tu me demandes d’aller voir dans un fichier les droits précédents et les restaurer avec setfacl une fois que je serais quels sont les droits qui vont bien c’est ça?)
Non, getfacl c’est la commande pour voir les ACL appliqués. Il y a 2 notions dans les droits, les droits “simples” avec les droits en lecture,écriture,exécution et c’est géré sur 3 niveaux, l’utilisateur, le groupe et les autres. Les ACL permettent de donner des droits spécifiques sans changer les droits de base, ici c’est utilisé pour le groupe multimedia.
Dans le helper tu as les droits appliqués par défaut avec yunohost. La commande setfacl est celle qui permet de changer les ACL. Donc avec ces commandes tu pourras rétablir la situation par défaut s’il y a eu des changements.
Une deuxième chose important à vérifier ce sont tes montages externes dans Nextcloud et voir s’ils sont bien paramétrés.
Tu peux vérifier les droits, propriétaires et ACL avec ces commandes :
namei -l /home/yunohost.multimedia/*
ls -l /home/yunohost.multimedia/*
getfacl /home/yunohost.multimedia/*
Tu peux les poster ici si tu ne sais pas les interpréter.
Idem pour la ligne de montage de dossiers externes dans Nextcloud si tu ne sais pas.
lrwxrwxrwx 1 useradmin root 31 Mar 11 16:42 /home/yunohost.multimedia/Share → /home/yunohost.multimedia/share
/home/yunohost.multimedia/user:
total 16
drwxrwxr-x+ 2 user root 4096 May 13 17:20 eBook
drwxrwxr-x+ 2 user root 4096 May 13 17:20 Music
drwxrwxr-x+ 2 user root 4096 May 13 17:20 Picture
lrwxrwxrwx 1 user root 31 May 13 17:20 Share → /home/yunohost.multimedia/share
drwxrwxr-x+ 2 user root 4096 May 13 17:20 Video
/home/yunohost.multimedia/eBook:
total 1771160
-rw-rwxr-x+ -rw-rwxr-x+ 1 nextcloud nextcloud tailledufichier date heure nomdufichier
/home/yunohost.multimedia/Music:
total 528
drwxrwxr-x+ 6 nextcloud nextcloud tailledudossier date heure nomdudossier
/home/yunohost.multimedia/share:
total 16
drwxrwxr-x+ 2 root root tailledudossier date heure nomdudossier
/home/yunohost.multimedia/Video:
total 112
drwxrwxr-x+ 9 nextcloud nextcloud tailledudossier date heure nomdudossier
Bon je pense voir le problème, tu as des dossiers directement dans /home/yunohost.multimedia alors que ce ne devrait pas être le cas :
exemple : /home/yunohost.multimedia/Music
Et ton montage externe dans Nextcloud est /mnt/hdd/home/yunohost.multimedia, donc le dossier Multimedia donne accès à tout ce qui trouve dans /mnt/hdd/home/yunohost.multimedia.
Les ACL ont l’air d’être corrects.
Toujours sur l’exemple précédent avec Music (ce doit être pareil pour Picture,Ebook,etc…) , l’arborescence doit être sous la forme /home/yunohost.multimedia/$USER/Music et jamais /home/yunohost.multimedia/Music.
Une fois réglé ce souci, dans Nextcloud il faut corriger également la configuration du stockage comme indiqué ici dans le script d’installation.
/home/yunohost.multimedia/$user
Vu que tu fais un montage bind si j’ai bien compris, ça fonctionnera. Si tu veux garder la forme /mnt/hdd… rajoute /$user à la fin du chemin.
Tu peux te contenter de changer juste le chemin dans le montage externe de Nextcloud, ça sera suffisant pour restreindre les utilisateurs mais un dossier n’a rien à faire à la racine de /home/yunohost.multimedia. Les dossiers sont soit dans dans celui d’un utilisateur, soit dans share pour les dossiers partagés.