“chmod g + w”无效:在fstab中使用file_mode和dir_mode将NAS权限添加到组中(Ubuntu 16.04.4 LTS)

背景

我是一个充满激情的PLEX媒体服务器(“PMS”)用户。 我在卧室里的Mac Mini上运行了PMS和uTorrent。 uTorrent从我的家庭局域网下载媒体到互联网上的2Tb WDMyCloud NAS(“NAS”),PMS会将媒体从NAS传输到家庭局域网和互联网上的客户端。 一切都很好。

我想减少噪音,增加额外的存储空间并安排一些东西,以便减少能源占用(Raspberry PI 3还不够)。 所以我回收了一台旧的(但尚未旧的)i5 SONY Vaio笔记本电脑(“SONY”)和1.5Tb USB硬盘。

所以现在我正在使用:

  1. SONY运行snappy Ubuntu Core 16.04.4 LTS,于2018年3月2日完全更新和升级,如下:

    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 

它运行无头,没有任何GUI。 我根据需要通过有线局域网(没有wifi)进入它。

  1. 我的2Tb WDMyCloud NAS,运行Debian如下:

     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 
  2. 我更老的1.5Tb USB硬盘显示为“Story_1_5Tb_2”(“故事”)。 它插入NAS,因此显示如下:

     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 

现在的情况

在SONY上存在以下用户:

 stefano@SONY:/home/plex$ cut -d: -f1 /etc/passwd root daemon [...] nobody [...] stefano plex debian-transmission 

这些用户已添加到组mediaserver

 stefano@SONY:/home/plex$ getent group mediaserver | awk -F: '{print $4}' stefano,plex,debian-transmission,daemon,nobody 

本机存储在NAS(WDMyDrive)和1.5Tb USB硬盘(Story_1_5Tb_2)上的存储安装如下:

 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] 

SONY的/etc/fstab如下所示:

  GNU nano 2.5.3 File: /etc/fstab #       # / 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以便允许PMS在NAS和STORY上运行
  • 允许gid=mediaserver以便stefano,plex,debian-transmission,daemon,nobody也可以被允许操作
  • 选择将rw (读取和写入)指定为挂载选项的原因相同

WDMyCloud共享(安装在/home/plex/WDMyCloud )对应于NAS上的Public文件夹,如下所示:

 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 

什么有效

  1. 像羽毛一样光,Ubuntu核心在我的4-yo SONY i5上像火箭一样飞。
  2. 不需要运行在被剥夺了所有操作系统的操作系统上,PMS转码和流动就像一个魅力。 它无缝地识别网络共享(NAS和STORY)并能够对它们进行操作。 在需要时,无论我从何处访问其Web界面,它都能够移动,添加和删除文件。
  3. 网络也很棒,PMS流到互联网和家庭局域网之外。
  4. 安装了传输,守护进程在启动时启动,并且可以访问Web界面:从Web界面我可以加载种子和磁链。 当我加载它们时,Transmission访问互联网并尝试下载。

很棒,但……

什么行不通

不知怎的,我无法让传输写在STORY上。

…所以:

  1. Trasmission的守护进程启动
  2. 可以从家庭局域网内访问Web界面(暂时不需要在我的路由器上打开其他门)和
  3. 我可以添加种子,但……

…由于“ 权限被拒绝 ”,种子不会下载。

显然,用户debian-transmission (我假设他是那个人)不允许在STORY上写。

我尝试了什么

  1. chmod符号 – >无济于事

     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] 
  2. chmod Absolute – >无济于事

     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 
  3. 我甚至试图设置Setuid – 我想也许如果Transmission可以读取并执行STORY上的文件,它也可以写入并删除它,如果该文件被赋予所有者的权限。 这是一个很长的镜头,当然…… 它没有用

     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 
  4. 然后我读到它可能是装有cifs的STORY的ntfs文件系统 。 据我所知,显然Linux通常只能读取ntfs文件系统,并且需要ntfs-3g。

另一个远景,因为我可以在ntfs文件系统上写或不。 在我的情况下, uid=plex可以写,但gid=mediaserver的成员不能:这很奇怪。

但是我从/etc/fstab删除了Story_1_5Tb_2行并尝试了ntfs-3g – >无济于事。

 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[,...]]   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 

由于位置没有改变,rtfs-3g可能无法识别网络安装吗?

为什么chmod无法正常工作? …为什么安装-o gid=mediaserver,rw也不工作?

STORY驱动器是USB硬盘驱动器,ntfs格式化并插入NAS。 我可以访问它和uid=plex因为它的拥有者拥有它:读取,执行和写入。 一切都在有线(有线,而不是wifi)局域网内连接。 我真的需要能够允许Transmission(“uid = debian-transmission”)在STORY驱动器上写入。

问题是在我的卧室的Mac Mini上安装的uTorrent仍然可以访问故事 – 为什么不在SONY上传输? 我究竟做错了什么?

我更改了我的etc / fstab,以便它将挂载网络共享,如下所示:

 //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 

特别是,我在字符串中添加了以下选项:

 ,iocharset=utf8,file_mode=0770,dir_mode=0770, 

这为网络共享提供了对“uid = mediaserver”组成员的完全读取,写入和执行权限。 “Uid = plex”甚至在修改之前就已经获得了所有这样的许可; 我选择不允许“o”其他用户。

现在,如果我是-l我安装了我的故事的文件夹,我得到:

 drwxrwx--- 2 plex mediaserver 0 Mar 3 09:53 story 

因此,Transmission(“uid = mediaserver”组的成员)保存下载正常:结局愉快!

现在,虽然我看到那些选项做了什么(“绝对”值与chmod相同,这使整个事情几乎不言自明),我不明白为什么我之前做的(设置uid和gid)是不够的/ correct,我也不明白为什么用sudo权限执行chmod会无法解决问题。 实际上这个选项与chmode的相似性使得它看起来像是在mount时执行的某种chmod ,那么为什么以后执行的chmod无法解决呢?