Nextcloud / Samba - Permissions multiples sur un disque dur NTFS

Mon serveur YunoHost

Matériel: Raspberry Pi à la maison
Version de YunoHost: 4.1.6 (stable)
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
Si oui, expliquer: Installation de Samba (non pris en charge dans Yunohost si je ne m’abuse), et déplacement de NextCloud sur un disque dur externe.

Description du problème

Bonjour à toutes et tous,

Tout d’abords je vous prie de bien vouloir excuser mes peu de connaissances en GNU Linux, je m’y mets depuis quelques jours pour utiliser YunoHost, j’avais jamais osé m’y coller avant…

J’utilise Yunohost sur un Raspberry pi 4 chez moi. J’y ai installé NextCloud et un disque dur externe. J’ai transféré le contenu des dossiers synchronisés de Nextcloud sur mon disque dur (en suivant cette procédure. D’autre part, sur ce même Disque dur, j’aimerai avoir un dossier “multimédia” partagé avec les différents appareils chez moi (essentiellement mon PC Windows et ma box internet). Le but étant de lire sur ma box, et donc sur ma TV, des films que je place via mon PC sur le disque dur du Raspberry. Vous me suivez ? :grimacing:

Le disque dur est formaté en NTFS puisque j’y mets des fichiers depuis Windows). Ma box internet n’a besoin que d’un accès en lecture sur ce disque dur.

Voilà une config qui fait dresser le poil des anti-microsoft :upside_down_face: Windows, NTFS…

Et donc voilà le souci : le disque dur NTFS ne permet pas, semble-t-il, d’avoir des permissions différentes sur ses différents dossiers. Les permissions sont définies au montage et puis voilà.

Alors que NextCloud nécessite que ses données (disons le dossier “nextcloud” du disque dur) ne soient pas lisible par les utilisateurs “invités”. Donc il devrait avoir des permissions 0770.
Et que le dossier dans lequel je mets les vidéos à partager doit être lisible par les “invités” (ma box en l’occurence).

Donc, dans /etc/fstab, si je règle le montage du disque dur avec les permissions 0770, ma box n’a pas accès au dossier partagé (et Windows non plus d’ailleurs, il ne me demande pas de mot passe, il dit juste que c’est inaccessible).
Et si je règle le montage avec les permissions 0777, la box et Windows ont bien accès au dossier partagé, mais Nextcloud n’aime pas ça du tout et dit :

Votre répertoire est lisible par les autres utilisateurs

… et refuse de me donner accès à mes fichiers, je ne peux pas me connecter à l’interface, etc…

(Je tiens à remercier notamment tituspijean pour ses explications très claires sur ce topic pour l’utilisation du fichier fstab)

J’ai essayé de bidouiller fstab pour y ajouter une ligne afin de monter différemment le dossier “nextcloud”, avec ses propres permissions, du reste du disque dur, mais je n’y arrive pas. J’ai testé plusieurs manières de monter le dossier “nextcloud” différemment, mais je ne sais même pas si c’est possible (puisqu’il fait partie du disque dur qui est lui-même déjà monté avec d’autres paramètres).

Vous me direz : “ben c’est simple, tu prends 2 disques durs et tu arrêtes de nous emm… :face_with_symbols_over_mouth:
Oui c’est vrai, mais justement je voulais un truc simple à utiliser et à maintenir, un seul Raspberry, un seul disque dur, etc.

Ou alors vous pourrez me dire aussi : “ben c’est simple, tu prends un disque dur formaté en ext4, tu règles les permissions spécifiques pour chaque dossier et tu arrêtes de nous emm… :face_with_symbols_over_mouth:
Je suis encore trop attaché à mon petit PC Windows, et d’après ce que je lis on ne peut pas modifier le contenu d’un disque dur ext4 depuis Windows (ou alors faut installer des trucs, je ne trouve pas ça pratique, et encore je lis que Ext2fsd, pour ne citer que lui, ne permet pas la modification, mais j’ai pas testé)
Après, si vous connaissez un système de fichiers autre que NTFS/Ext4 qui est modifiable par Linux et Windows et qui permet des tailles de fichiers importantes, je suis preneur…

Pour info, mon installation est récente, je peux encore tout réinstaller et réinitialiser si j’ai foiré quelque chose à un moment

Auriez-vous des idées ? Des suggestions pour faire comprendre au tryptique Yunohost/Nextcloud/Disque dur ce que je veux faire ? Une arme pour l’aider à me comprendre ?

Merci à vous

Cela devait être un jour faste, d’habitude je n’ai pas autant de chance. :stuck_out_tongue:


C’est bien verbeux tout ça ! Pour reprendre ton problème:

  1. Disque en NTFS
  2. Un ou des répertoires dédiés à Nextcloud
  3. Un ou des répertoires à partager pour ta box/tes invités

Je vais supposer que le partage pour les invités se fait par le protocole Samba (sur Windows c’est ce qui apparaît généralement dans le dossier Réseau).

NTFS n’est pas un problème en soi, Samba s’en accommode bien. En fait Samba s’en fout complètement, tout comme Nextcloud qui est “juste” embêtant sur les permissions.

Comme tu sembles avoir bidouillé le fstab, mais que tu ne montres pas ce que tu as fait (pas bien!). Je reprends au début (ça peut aider les autres lecteurs aussi). Voici mon installation, un disque dur nommé disquedur monté avec /etc/fstab comme suit:

PARTUUID=yyy    /media/disquedur     ntfs-3g defaults,nls=utf8,umask=007,dmask=007,fmask=117,uid=997,gid=993,async,atime,nofail      0 0

Là dedans, il faut modifier:

  • PARTUUID=yyy par ce qui te permet d’identifier le disque dur, trouvé via blkid dans la ligne de commande
  • uid=997,gid=993 en replaçant les numéros par ceux trouvés en faisant id nextcloud dans la ligne de commande
# Si besoin, créer le point de montage
mkdir -p /media/disquedur
chown nextcloud:nextcloud -R /media/disquedur
mount /media/disquedur

→ Cela montera ton disque dur avec l’utilisateur nextcloud avec les permissions qui vont bien.

Ensuite, Samba:

  1. Installe-le avec apt install samba
  2. Modifie le fichier /etc/samba/smb.conf. Il y a plein de commentaires dedans, je ne mets que le code minimal. J’espère que tu t’y retrouveras:
[global]
   workgroup = WORKGROUP
   interfaces = 127.0.0.0/8 eth0
   bind interfaces only = yes

Ce point-ci, avec interfaces, est important, car sinon tu pourrais te retrouver avec tes fichiers accessibles depuis l’internet… J’ai mis eth0 car c’est généralement le nom de l’interface Ethernet. Mais si tu as une autre configuration, tu peux trouver le nom qui va bien avec ip a (ça liste toutes les ip, ne retiens que celle de ton réseau local et l’interface qui lui correspond).

Puis à la fin du fichier tu ajoutes une section:

[disquedur]
  comment = Disque dur <3
  path = /media/disquedur
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = nextcloud
  force group = nextcloud

Cela dira à Samba d’accepter les connexions sans identifiant, et de lire et enregistrer les fichiers en tant que nextcloud. Si tu ne veux qu’une lecture seule, passe read only = yes.
3. Ensuite, ouvre le port 445: yunohost firewall allow TCP 445
4. systemctl restart smbd

La suite c’est un peu funky, j’ai jamais vraiment réussi à faire apparaître mon serveur dans le dossier Réseau de Windows. Mais en tapant l’adresse IP du serveur, genre \\192.168.1.5, ou même \\yunohost.local, ça devrait marcher.

Merci tituspijean, encore une réponse très claire et complète de ta part. Et pour couronner le tout tu fais un tuto pour les autres visiteurs… Bravo !

Présentement je ne suis pas devant un ordi, mais je tenais au moins à saluer ta réponse rapide et précise !

Oui, ce sont les quelques lignes du smb.conf qui me seront utiles je pense pour forcer l’utilisateur, je testerai ça et reviendrai faire tes louanges si ça règle le problème :crazy_face: (et je lancerai peut-être une cagnotte leetchi ou quelque chose du genre pour proposer la construction d’un temple en ton honneur)

Pour l’accès au partage via Windows et même depuis la box, oui il faut préciser explicitement l’adresse du périphérique car il n’est pas “découvert” automatiquement. Une bizarrerie parmi d’autres.

Merci,

PS : oui je suis très (trop ?) verbeux comme personnage. Pas bien non plus.

Tituspijean, tu as un emplacement préféré pour la construction du temple à ta gloire ? :crazy_face:

En tout cas merci beaucoup, la modification du fichier smb.conf a parfaitement réglé mon problème :+1:

Merci pour ton aide !

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.