群晖Docker安装Transmission qBittorrent jellfyfin emby等软件的权限设置
正在将blibli切片
编辑于 2022年02月20日 00:06
收录于文集
共1篇

一、 写在前面:

        1. 首先感谢诸多编写群晖教程的大佬们,让我从零开始接触到群晖,学习到了很多东西。

        2. 我在用群晖Docker和镜像的过程中,阅读和参考了很多大佬的文章,逐渐对群晖和Docker有了一定的理解,也发现了一些在个人理解上认为不完美的地方,在这里分享出来,如果理解有错误的地方,还请大家指正。

        3. 如果你在后面的下载过程中出现下载慢和下载失败的问题,一般都是网络原因,不宜过多描述,请百度搜索解决方法。

        4. 编写过程难免有所遗漏,如果你在阅读过程中有诸多不理解的地方,欢迎在评论区留言,我在这里会同时安装四个容器,让大家相互参照,并尽量将内容描述的更好理解。

        5. 为了方便写这篇文章,且不破坏我原有的环境,这篇文章所用到的内容全部运行在虚拟机里。

            虚拟机安装的产品型号:DS918+

            DSM版本:DSM 6.2.3-25426

二、 安装Docker和下载镜像(群晖叫映像)

        1. 直接在群晖套件中心搜索Docker并安装,安装完成后会自动在共享文件里面创建一个名为docker的文件夹。

01. 安装Docker

02. 自动创建的Docker文件夹

        2. 打开Docker->注册表,分别搜索和下载四个映像,版本默认选择latest就可以,其中jellyfin和emby分别有两个,我这里全部选择linuxserver的。

03. Transmission

04. qbittorrent

05. Jellyfin

06. emby

        如果点击下载后不弹出选择版本的对话框,且报错无法开始下载,可以使用ssh登录后台,使用docker pull xxx/xxx:latest 命令来进行安装,latest代表最新版,也可以安装其它版本。不知道ssh使用方法的可以自行百度学习。

代码块
JavaScript
自动换行
复制代码
docker pull linuxserver/jellyfin:latest
docker pull linuxserver/emby:latest
docker pull linuxserver/transmission		//不添加latest代表默认使用latest
docker pull linuxserver/qbittorrent			//不添加latest代表默认使用latest
复制成功

07. 使用命令拉取映像

        3. 无论使用图形化界面下载,还是使用命令下载,在完成后都应该在docker的映像中看到下载好的映像。

08. 四个下载完成的映像

三、 配置群晖用户和用户组权限

        1. 控制面板->共享文件夹,创建两个目录,一个给Transmission和qBittorrent用的Downloads,一个给jellyfin和emby用的Media。

09. 创建共享文件夹

        我这里还在下级路径分别创建了两个文件夹做后边的演示使用。

10. 后面用作展示的文件夹

        2. 控制面板->用户账户,创建两个用户。创建用户时只需要输入用户名和密码,后面的权限分配一律默认。

        我这里创建了U-Downloader用来给下载类型的docker容器使用,U-MediaSharer给媒体类型的docker容器使用。

11. 创建用户

        创建完成后用户是不具有对三个文件夹的读写权限的。

12. 默认权限

        3. 控制面板->用户群组,创建两个用户群组。

13. 创建用户组

        创建过程中给G-Downloaders分配 Downloads的读写权限。同理给G-MediaSharers分配Media的读写权限。

14. 分配共享文件夹权限

        4. 给用户组添加用户,让用户继承用户组的权限。

        G-Downloaders添加U-Downloader,G-MediaSharers添加U-MediaSharer。

15. 为用户组添加成员

        这样U-Downloader就继承了G-Downloaders用户组对Downloader文件夹的读写权限。U-MediaSharer同理。

16. 继承用户组权限的用户

四、 为Docker容器提前创建文件夹和分配文件夹权限

        1. 在docker文件夹中按下图层级结构创建文件夹。

17. 文件夹层级结构

        2. 将文件夹权限分配给用户或用户组。

        这里以emby_linuxserver文件夹为例,我将文件夹的全部允许权限给了用户U-MediaSharer。这里也可以直接给G-MediaSharers用户组授权,但如果给朋友创建了一个名为U-MediaSharer2的用户用来分享群晖中的电影音乐,同样属于G-MediaSharers用户组,这样你的朋友就有了权限操作emby_linuxserver文件夹,所以这里不推荐直接给用户组授权。用同样的方法分别将其它文件夹权限授予需要的用户。

18. 给U-MediaSharer用户分配emby_linuxserver文件夹的权限

五、 查看Docker容器用到的用户和用户组ID

        0. 常见的教程中为了授予容器对文件夹的访问权限,一般采用下面3种方法之一,这三种方法都可以实现,但主要是安全性不足。

                a. 直接勾选使用高权限执行容器。

                b. 将使用的文件夹直接授予everyone用户全部权限,方法类似于第四部分。

                c. 在容器的环境中填写管理员的UID和GID。

        1. 本文采用第三种方法,但并不直接使用管理员权限。进入Docker->映像,在创建容器之前先打开映像右侧的链接。

19. 打开映像右侧的链接

        2. 这里以qBittorrent为例,链接里面会告诉你怎么安装和配置容器,文件夹映射、端口映射等等部分请直接参考链接和其它教程,这里只说权限部分。下拉到参数部分。找到PUID和PGID,我们就是要在环境里填写这两个地方来解决Docker容器的文件夹权限问题。

20. 参数说明

        3. 使用管理员账号登录后台,使用vi etc/group命令查看用户组ID,我这里两个用户组ID分别是65536 65537。请自行百度vi命令的使用方法。

代码块
JavaScript
自动换行
复制代码
vi etc/group
复制成功

21. 命令

22. 用户组信息

        使用vi etc/passwd查看用户ID,两个用户ID分别是1027 1028。

代码块
JavaScript
自动换行
复制代码
vi etc/passwd
复制成功

23. 命令

24. 用户信息

六、 配置容器

        完成文件路径映射,做好端口转发规则,配置好环境,将对应的ID填入四个容器相应的环境,注意每个容器的关键字可能并不一样,具体请查看相关链接。

        1. qBittorrent:

        注意:有人说不能使用默认的容器端口6881,所以我改成了6991。前两个端口是一样的,只是协议不一样。

        本地端口为0-65535,数字小的很可能被其他软件占用,建议设置大一点,比如我这里选了56991和58080,。

        环境里添加PGID,填写用户组G-Downloaders的ID:65536,添加PUID,填写用户U-Downloader的ID:1027。

25. 文件路径映射

26. 端口转发规则

27. 环境变量

        2. transmission:

        环境里添加PGID,填写用户组G-Downloaders的ID:65536,添加PUID,填写用户U-Downloader的ID:1027。

28. 文件路径映射

29. 端口转发规则

30. 环境变量

        3. emby:

        环境里添加PGID,填写用户组G-MediaSharers的ID:65537,添加PUID,填写用户U-MideaSharer的ID:1028。

31. 文件路径映射

32. 端口转发规则

33. 环境变量

        4. jellyfin:

        注意:这里的8096映射到了本地的58097,因为本地的58096端口被前面的emby占用了。

        环境里添加PGID,填写用户组G-MediaSharers的ID:65537,添加PUID,填写用户U-MideaSharer的ID:1028。

34. 文件路径映射

35. 端口转发规则

36. 环境变量

七、 运行容器,Enjoy!

37. Docker容器

        1. 在emby和jellyfin添加媒体库的时候,我这里能看到之前添加的两个演示文件夹,就说明权限配置没问题。

38. emby添加媒体库部分

39. jellyfin添加媒体库部分

        2. 在transmission和qBittorrent中将下载路径设置为/downloads2/就可以将文件下载到群晖的Downloads文件夹中。

40. Transmission

41. qBittorrent

        注意:qBittorrent打开如果提示Unauthorized,先关闭容器,修改docker/qbittorrent_linuxserver/config/qBittorrent/qBittorrent.conf文件,在最后增加WebUI\HostHeaderValidation=false,保存,启动容器。文本编辑器可以在群晖套件找到。

42. 修改qBittorrent配置文件