我一直在尝试弄清楚如何管理我遇到的文件权限问题,但是在研究该问题时我看到的任何组合都无法解决我的问题。
我家里有两台服务器在虚拟机管理程序下运行。其中一个是文件服务器 (#fs),另一个是媒体服务器 (#plex)。我设置了一个单独的分区,安装在 /mnt/storage/ 的 fs 上。/mnt/storage/media 上有一个子目录,是 samba 共享。我在 #fs 上运行 transmission-daemon,默认情况下下载到该目录,然后我将它们移动到电影或电视的相应子目录中。Transmission 以用户 @debian-transmission 的身份在 #fs 上运行,plexmediaserver 以用户 @plex 的身份在 #plex 上运行。
Servers: #plex and #fs
Users: @plex and @debian-transmission
Shares: $media
Groups: %media
媒体共享在启动时通过 /etc/fstab 安装在 plex 上,使用以下行(请忽略在 /etc/fstab 中列出密码的不安全做法):
//10.0.0.96/media /mnt/shares/media cifs username=plex,password=#REDACTED# 0 0
媒体共享由 fs 共享,smb.conf 中的配置如下
[media]
comment = Media files
path = /mnt/storage/media
read only = no
browsable = yes
create mask = 0777
在 #fs 和 #plex 上,我都尝试创建一个名为 %media 的组,并递归地让该组成为目录的所有者。在 #fs 上,这似乎可行,但在 #plex 上,它永远不会更改 root root 的权限。
Plex 需要读写权限才能将媒体添加到其内部库。Debian-transmission 也需要同样的权限才能下载种子。我尝试过一些组合,对 $media 执行了 chmod 777,但仍然没有得到想要的结果。以下是当前的情况,我不确定如何在通过 samba 共享时维护文件权限。我不介意这最终导致每个人都拥有对这些共享的完全访问权限,因为这一切都在防火墙后面,而且没有什么特别重要的。当然,我希望这些权限能够被继承,因为当 transmission 下载新的种子时,它会更改新文件/文件夹的权限。
#plex 上的 %media 成员:
javitab@plex:/$ grep media /etc/group
media:x:1005:plex
#fs 上的 %media 成员:
javitab@fs:/$ grep media /etc/group
media:x:3081:javitab,plex,debian-transmission
#fs 上 /mnt/storage/media 的权限:
javitab@fs:/$ sudo chown -R debian-transmission:media media
javitab@fs:/$ ls -la /mnt/storage/
total 36
drwxr-xr-x 5 javitab root 4096 Jun 24 01:53 .
drwxr-xr-x 3 root root 4096 Jun 23 15:13 ..
drwxr-xr-x 2 javitab root 4096 Jun 24 05:48 javitab
drwx------ 2 javitab root 16384 Jun 23 01:32 lost+found
drwxrwsrwx+ 4 debian-transmission media 4096 Jun 24 16:31 media
#plex 上 /mnt/shares/media 的权限:
javitab@plex:/$ sudo chown -R plex:media /mnt/shares/media
javitab@plex:/$ ls -la /mnt/shares/
total 8
drwxr-xr-x 3 root root 4096 Jun 23 23:54 .
drwxr-xr-x 3 root root 4096 Jun 23 23:53 ..
drwxr-xr-x 2 root root 0 Jun 24 16:31 media