web-dev-qa-db-ja.com

「chmod g + w」が機能しない:fstabでfile_modeおよびdir_modeを使用してNASの権限をグループに追加(Ubuntu 16.04.4 LTS)

バックグラウンド

私は情熱的なPLEX Media Server(「PMS」)ユーザーです。私は寝室のMac MiniでPMSとuTorrentの両方を実行していました。 uTorrentはインターネットから2Tb WDMyCloudにメディアをダウンロードしましたNAS(「NAS」)は自宅のLANで、PMSはメディアをNASから自宅のLANとインターネット。すべてうまくいきました。

ノイズを減らし、ストレージスペースを追加して、エネルギーフットプリントが軽くなるように整理したかった(Raspberry Pi 3では十分ではありませんでした)。そこで、古い(しかしまだ古い)i5 SONY Vaioラップトップ(「SONY」)と1.5Tb USBハードドライブをリサイクルしました。

だから今私は使用しています:

  1. 次のように、2018年3月2日時点で完全に更新およびアップグレードされた、Snappy Ubuntu Core 16.04.4 LTSを実行しているSONY:

    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なしで、ヘッドレスで実行されます。必要に応じて、有線LAN(wifiなし)を使用してsshします。

  1. 次のようにDebianを実行している私の2Tb WDMyCloud NAS:

    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. 「Story_1_5Tb_2」(「STORY」)として表示される、さらに古い1.5Tb USBハードドライブ。 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                                  

# <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に割り当て、PMSがNASおよびSTORYで動作できるようにしました
  • Igid=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. すべてを奪われたOS上で実行する必要はありません。PMSは魅力的なコードをトランスコードし、ストリームします。ネットワーク共有(NASとSTORYの両方)をシームレスに認識し、それらを操作できます。必要に応じて、どこからWebインターフェースにアクセスしても、ファイルを移動、追加、削除できます。
  3. ネットワークも素晴らしく、PMSはインターネットや自宅のLANの外にストリーミングします。
  4. 転送がインストールされ、起動時にデーモンが起動し、Webインターフェースにアクセスできます。Webインターフェースからトレントとマグネットリンクをロードできます。ロードすると、Transmissionはインターネットにアクセスし、ダウンロードを試みます。

素晴らしいですが...

動作しないもの

どういうわけか、TransmissionにSTORYに書き込むことはできませんでした。

...そう:

  1. Trasmissionのデーモンが起動します
  2. webインターフェースはホームLAN内からアクセス可能です(当面はルーターの他のドアを開く必要はありません)。
  3. トレントを追加できますが、...

...(許可が拒否されたため)、トレントはダウンロードされません。

どうやら、ユーザーdebian-transmission(私は彼が男だと思います)はSTORYに書き込むことが許可されていません。

私が試したもの

  1. chmod Symbolic->無効に

    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のメンバーはできません。これは奇妙です。

しかし、私はStory_1_5Tb_2から/etc/fstab行を削除し、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[,...]] <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

場所が変更されていないため、rtfs-3gがネットワークマウントを認識しない可能性がありますか?

Chmodが機能しないのはなぜですか? ...そして、なぜ-o gid=mediaserver,rwでのマウントも機能しないのですか?

STORYドライブはUSBハードドライブで、NTFSでフォーマットされ、NASに接続されています。所有者が読み取り、実行、書​​き込みのすべてを持っているので、uid=plexにアクセスできます。すべてが有線(wifiではなくケーブル接続)LAN内で接続されています。 Transmission( "uid = debian-transmission")がSTORYドライブに書き込むことができるようにする必要があります。

問題は、私の寝室のMac MiniにインストールされたuTorrentがまだストーリーにアクセスできるということです。SONYのTransmissionはどうですか?何が間違っていますか?

3
Stefano A

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」他のユーザーには一切許可を与えないことにしました。

ストーリーをマウントしたフォルダーをls -lすると、次のようになります。

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

その結果、Transmission( "uid = mediaserver"グループのメンバー)はダウンロードを保存します:ハッピーエンド!

さて、これらのオプションが何をするのかを見ています(「絶対」値はchmodと同じです。以前にやったこと(uidとgidの設定)が十分/正しくなかった理由がわかりません。また、Sudo権限でchmodを実行する理由がわかりません。問題を解決するために何もしません。実際、このオプションとchmodeの類似性により、マウント時に実行されるchmodのように見えるため、なぜchmod後で実行すると解決しない?

2
Stefano A