Je suis un utilisateur passionné du serveur multimédia PLEX ("PMS"). Je courais à la fois PMS et uTorrent sur un Mac Mini dans ma chambre. uTorrent a téléchargé un contenu multimédia d’Internet sur un réseau 2 To WDMyCloud NAS ("NAS") sur mon réseau local et le système de gestion de la chaîne PMS transmettrait le contenu multimédia du NAS aux clients situés sur mon réseau local et sur le réseau. l'Internet. Tout a très bien fonctionné.
Je voulais réduire le bruit, ajouter de l'espace de stockage supplémentaire et organiser les choses de manière à réduire l'empreinte énergétique (un Raspberry Pi 3 ne suffisait pas). J'ai donc recyclé un ordinateur portable SONY Vaio i5 (le "SONY") plus ancien (mais pas encore ancien) et un disque dur USB de 1,5 To.
Alors maintenant, j'utilise:
Le SONY exécutant Snappy Ubuntu Core 16.04.4 LTS, entièrement mis à jour et mis à niveau au 2 mars 2018, comme suit:
stefano@SONY:/$ uname -a
Linux SONY 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Il fonctionne sans tête, sans interface graphique. Je ssh dedans au besoin par mon réseau local câblé (pas de wifi).
Mon NAS WDMyCloud 2 To, exécutant Debian comme suit:
WDMyCloud:/dev# uname -a
Linux WDMyCloud 3.2.26 #1 SMP Thu Jul 9 11:14:15 PDT 2015 wd-2.4-rel armv7l GNU/Linux
Mon disque dur USB encore plus ancien de 1,5 To, qui affiche "Story_1_5Tb_2" ("STORY"). Il est branché sur le NAS, ce qui indique par conséquent:
WDMyCloud:/dev# lsblk -f
NAME FSTYPE LABEL MOUNTPOINT
sda
|-sda1 linux_raid_member
| `-md1 ext3 /
|-sda2 linux_raid_member
| `-md1 ext3 /
|-sda3 swap [SWAP]
|-sda4 ext4 /DataVolume
|-sda5
|-sda6
|-sda7
`-sda8
sdb
`-sdb1 ntfs Story 1.5Tb /var/media/Story_1_5Tb_2
Sur le SONY, les utilisateurs suivants existent:
stefano@SONY:/home/plex$ cut -d: -f1 /etc/passwd
root
daemon
[...]
nobody
[...]
stefano
plex
debian-transmission
Ces utilisateurs ont été ajoutés au groupe mediaserver
.
stefano@SONY:/home/plex$ getent group mediaserver | awk -F: '{print $4}'
stefano,plex,debian-transmission,daemon,nobody
Le stockage en mode natif sur NAS (WDMyDrive) et le disque dur USB 1,5 To (Story_1_5Tb_2) ont été montés comme suit:
stefano@SONY:/home/plex$ ls -l
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 2 12:00 story
drwxr-xr-x 2 plex mediaserver 0 Mar 2 10:50 WDMyCloud
stefano@SONY:/home/plex$ ls -l story
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 1 13:40 Shared [A]
drwxr-xr-x 2 plex mediaserver 0 Mar 1 13:40 Shared [B]
drwxr-xr-x 2 plex mediaserver 0 Feb 25 23:02 System Volume Information
-rwxr-xr-x 1 plex mediaserver 0 Feb 28 06:49 temp.ts
drwxr-xr-x 2 plex mediaserver 0 Mar 2 09:49 Shared [C]
drwxr-xr-x 2 plex mediaserver 0 Mar 1 18:19 Shared [D]
stefano@SONY:/home/plex$ ls -l WDMyCloud
total 0
drwxr-xr-x 2 plex mediaserver 0 Feb 24 09:19 Shared [E]
drwxr-xr-x 2 plex mediaserver 0 Feb 21 12:32 Shared [F]
drwxr-xr-x 2 plex mediaserver 0 Feb 21 12:29 Shared [G]
drwxr-xr-x 2 plex mediaserver 0 Nov 20 2016 Shared [H]
[other shares]
Le /etc/fstab
du SONY se présente comme suit:
GNU nano 2.5.3 File: /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb1 during installation
UUID=6e54f9e7-5579-437b-9e7d-5f76b3fe146e / ext4 errors=remount-ro 0 1
# swap was on /dev/sdb5 during installation
UUID=59f57e49-82e9-4be3-b53a-1a65c0e771ae none swap sw 0 0
# These are the mounts needed to let PLEX find the media shared in WDMyCloud and Story_1.5Tb
#
//WDMyCloud/Public /home/plex/WDMyCloud cifs _netdev,uid=plex,gid=mediaserver,rw,guest 0
#
//WDMyCloud/Story_1_5Tb_2 /home/plex/story cifs _netdev,uid=plex,gid=mediaserver,rw,guest 0
uid=plex
afin que PMS puisse fonctionner sur le NAS et sur le STORY.gid=mediaserver
afin que stefano,plex,debian-transmission,daemon,nobody
soit également autorisé à fonctionnerrw
(lecture & écriture) comme option de montageLe partage WDMyCloud (monté dans /home/plex/WDMyCloud
) correspond à un dossier Public
sur le NAS, comme suit:
WDMyCloud:/DataVolume/shares# ls -l
total 32
drwxrwxrwx+ 12 root share 4096 Mar 2 10:50 Public
drwxrwxrwx+ 2 root share 4096 Mar 8 2017 SmartWare
drwxrwxrwx+ 2 root share 4096 Mar 2 10:39 Stefano
lrwxrwxrwx 1 root share 24 Mar 2 10:43 Story_1_5Tb_2 -> /var/media/Story_1_5Tb_2
drwxrwxrwx+ 2 root share 4096 Mar 8 2017 TimeMachineBackup
Génial, mais ...
D'une manière ou d'une autre, je n'ai pas pu laisser Transmission écrire sur l'HISTOIRE.
...alors:
... les torrents NE téléchargeront PAS, à cause d'une " Permission refusée ".
Apparemment, l'utilisateur debian-transmission
(je suppose qu'il est le mec) n'est pas autorisé à écrire sur l'HISTOIRE.
chmod Symbolic -> en vain
plex@SONY:/home/plex$ ls -l
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 2 12:00 story
drwxr-xr-x 2 plex mediaserver 0 Mar 2 10:50 WDMyCloud
plex@SONY:/home/plex$ ls -l /home/plex/story
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 1 13:40 Shared [A]
drwxr-xr-x 2 plex mediaserver 0 Mar 1 13:40 Shared [B]
drwxr-xr-x 2 plex mediaserver 0 Feb 25 23:02 System Volume Information
-rwxr-xr-x 1 plex mediaserver 0 Feb 28 06:49 temp.ts
drwxr-xr-x 2 plex mediaserver 0 Mar 2 09:49 Shared [C]
drwxr-xr-x 2 plex mediaserver 0 Mar 1 18:19 Shared [D]
plex@SONY:/home/plex$ Sudo chmod -R g+w /home/plex/story
[Sudo] password for plex:
plex@SONY:/home/plex$ ls -l
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 2 12:00 story
drwxr-xr-x 2 plex mediaserver 0 Mar 2 10:50 WDMyCloud
plex@SONY:/home/plex$ ls -l /home/plex/story
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 1 13:40 Shared [A]
drwxr-xr-x 2 plex mediaserver 0 Mar 1 13:40 Shared [B]
drwxr-xr-x 2 plex mediaserver 0 Feb 25 23:02 System Volume Information
-rwxr-xr-x 1 plex mediaserver 0 Feb 28 06:49 temp.ts
drwxr-xr-x 2 plex mediaserver 0 Mar 2 09:49 Shared [C]
drwxr-xr-x 2 plex mediaserver 0 Mar 1 18:19 Shared [D]
chmod Absolute -> en vain
plex@SONY:/home/plex$ Sudo chmod -R 0770 /home/plex/story
plex@SONY:/home/plex$ ls -l
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 2 12:00 story
drwxr-xr-x 2 plex mediaserver 0 Mar 2 10:50 WDMyCloud
J'ai même essayé de définir Setuid - je pensais que si Transmission pouvait lire et exécuter un fichier sur le STORY, il pourrait aussi l'écrire et le supprimer si le fichier dispose des privilèges du propriétaire. C'était un long coup et bien sûr ... ça n'a pas marché.
plex@SONY:/home/plex$ Sudo chmod -R u+s /home/plex/story
plex@SONY:/home/plex$ ls -l
total 0
drwxr-xr-x 2 plex mediaserver 0 Mar 2 12:00 story
drwxr-xr-x 2 plex mediaserver 0 Mar 2 10:50 WDMyCloud
Ensuite, j'ai lu que cela pourrait être le système de fichiers ntfs de l'HISTOIRE monté avec cifs. Comme je l'ai appris, apparemment, Linux ne peut généralement lire que depuis les systèmes de fichiers ntfs et ntfs-3g est requis.
Encore une fois, car je peux écrire ou non sur un système de fichiers NTFS. Dans mon cas, uid=plex
peut écrire, mais les membres de gid=mediaserver
ne le peuvent pas: c'est étrange.
Mais j'ai enlevé la ligne Story_1_5Tb_2
de /etc/fstab
et essayé ntfs-3g
-> en vain.
plex@SONY:/home/plex/story$ Sudo ntfs-3g //WDMyCloud/Story_1_5Tb_2 /home/plex/story
[Sudo] password for plex:
ntfs-3g: Failed to access volume '//WDMyCloud/Story_1_5Tb_2': No such file or directory
ntfs-3g 2015.3.14AR.1 integrated Fuse 28 - Third Generation NTFS Driver
Configuration type 7, XATTRS are on, POSIX ACLS are on
Copyright (C) 2005-2007 Yura Pakhuchiy
Copyright (C) 2006-2009 Szabolcs Szakacsits
Copyright (C) 2007-2015 Jean-Pierre Andre
Copyright (C) 2009 Erik Larsson
Usage: ntfs-3g [-o option[,...]] <device|image_file> <mount_point>
Options: ro (read-only mount), windows_names, uid=, gid=,
umask=, fmask=, dmask=, streams_interface=.
Please see the details in the manual (type: man ntfs-3g).
Example: ntfs-3g /dev/sda1 /mnt/windows
News, support and information: http://tuxera.com
Puisque l'emplacement n'a pas changé, peut-être que rtfs-3g ne reconnaît pas les montages réseau?
Pourquoi chmod ne fonctionne pas? ... et pourquoi le montage avec -o gid=mediaserver,rw
ne fonctionne pas non plus?
Le lecteur STORY est un disque dur USB, formaté en ntfs et branché sur le NAS. Je peux y accéder et uid=plex
comme son propriétaire l’a tout: lecture, exécution et écriture. Tout est connecté dans un réseau local câblé (câblé, pas de wifi). J'ai vraiment besoin de pouvoir permettre à Transmission ("uid = debian-transmission") d'écrire sur le lecteur STORY.
Le truc, c’est que uTorrent installé sur le Mac Mini dans ma chambre peut toujours accéder à l’HISTOIRE - pourquoi pas la transmission sur le SONY? Qu'est-ce que je fais mal?
J'ai changé mon etc/fstab pour qu'il monte le partage réseau comme suit:
//WDMyCloud/Story_1_5Tb_2 /home/plex/story cifs _netdev,guest,uid=plex,gid=mediaserver,rw,iocharset=utf8,file_mode=0770,dir_mode=0770 0 0
En particulier, j'ai ajouté les options suivantes à la chaîne:
,iocharset=utf8,file_mode=0770,dir_mode=0770,
Cela donnait aux membres du groupe "uid = mediaserver" des autorisations de lecture, d'écriture et d'exécution complètes sur le partage réseau. "Uid = plex" disposait déjà de toutes ces autorisations avant même les modifications; J'ai choisi de ne donner aucune permission à "o" d'autres utilisateurs.
Maintenant, si je ls -l le dossier où j'ai monté mon histoire, je reçois:
drwxrwx--- 2 plex mediaserver 0 Mar 3 09:53 story
Par conséquent, Transmission (membre du groupe "uid = mediaserver") enregistre bien ses téléchargements: fin heureuse!
Maintenant, alors que je vois ce que font ces options (les valeurs "absolues" sont identiques à chmod , ce qui rend le tout assez explicite), Je ne comprends pas pourquoi ce que je faisais plus tôt (régler uid et gid) n'était pas suffisant/correct, je ne comprends pas non plus pourquoi exécuter chmod avec les privilèges Sudo serait ne rien faire pour résoudre le problème. En fait, la similitude de cette option avec chmode donne l’impression qu’il ressemble à une sorte de chmod exécuté lors du montage, alors pourquoi un ) chmod exécuté plus tard pas résolu?