Nextcloud / Samba - Permissions multiples sur un disque dur NTFS

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.