2023 群暉7.2 Docker下jellyfin硬解及權(quán)限設(shè)置
非教程,僅供參考
由于群暉更新了7.2,docker套件變成了Container Manager套件,并且增加了項(xiàng)目功能,也就是docker-compose,使創(chuàng)建容器變得更加便捷,便寫篇文章當(dāng)筆記。
準(zhǔn)備:
群暉型號(hào):DS920+
群暉版本:7.2
Jellyfin版本:10.8.10
一、設(shè)置權(quán)限:
由于網(wǎng)上大篇docker教程創(chuàng)建容器要么使用高權(quán)限,要么給文件夾設(shè)置Everyone權(quán)限,本著吃飽了撐著沒事干,把docker容器中的權(quán)限理一理,以jellyfin為例。
1.新增用戶,控制面板->用戶與群組->用戶賬號(hào)->新增,該用戶僅為docker中的jellyfin容器使用

2.設(shè)置文件夾權(quán)限,docker設(shè)置只讀,稍后在文件夾權(quán)限設(shè)置中解釋

3.設(shè)置應(yīng)用程序權(quán)限,全拒絕就好

4.新增用戶組

5.選擇剛剛創(chuàng)建的用戶jellyfin123

6.設(shè)置文件夾權(quán)限,docker只讀

7.設(shè)置應(yīng)用程序權(quán)限,全拒絕

8.右鍵docker文件夾->屬性->權(quán)限,選擇用戶jellyfin123

9.在docker下創(chuàng)建jellyfin123,右鍵屬性,這個(gè)也是我們?nèi)萜鞯奈募A,這里需要新增用戶jellyfin123

以上步驟8、9解釋:
在docker文件夾上設(shè)置用戶jellyfin123權(quán)限為只讀,應(yīng)用于此文件夾,那么這時(shí)候用戶jellyfin123將無法訪問docker文件夾下的任何一個(gè)文件、文件夾。
此時(shí)新建jellyfin123文件夾,并設(shè)置用戶jellyfin123擁有讀取和寫入的權(quán)限,并應(yīng)用于全部,那么用戶jellyfin123將能訪問到docker下的jellyfin123文件夾,并能寫入文件。
也就是用戶jellyfin123在docker文件夾中除了jellyfin123文件夾,其他文件、文件夾都無法訪問、也看不到。
這兩步也能應(yīng)用于同一共享文件夾下不同用戶的權(quán)限設(shè)置,比如,docker文件夾中有A、B兩個(gè)文件夾,按照步驟8、9設(shè)置,就能使用戶A在docker能訪問A文件夾,不能訪問B文件夾,也看不到B文件夾,用戶B同理。
二、群暉SSH獲取UID、GID
略。以下所有SSH操作需要切換到root用戶避免不必要的麻煩
命令為:id 用戶名
例:id jellyfin123
我獲取到的:uid=1234(jellyfin123) gid=100(users) groups=100(users),5678(docker456)
其中 uid:1234和groups:5678分別為我們剛剛創(chuàng)建的用戶jellyfin123和用戶組docker456,這兩值等等需要在docker-compose.yml中使用。
由于jellyfin官方鏡像不像linuxserver-jellyfin鏡像有提供PUID、PGID環(huán)境變量供我們使用,所以需要在docker-compose.yml中設(shè)置,如果你用到的其他鏡像有提供該環(huán)境變量,那么直接在環(huán)境變量中設(shè)置這兩個(gè)值即可。
題外話,有的鏡像如lycheeorg-lychee,即便環(huán)境變量有提供這倆值,但是起作用的只有PGID,官方文檔也沒說明,所有你只能把用戶組當(dāng)用戶來設(shè)置權(quán)限。
三、在Container Manager(docker)創(chuàng)建項(xiàng)目(容器)
這里項(xiàng)目也就是docker-compose
1.先在你的電腦里創(chuàng)建docker-compose.yml文件,內(nèi)容如下

簡(jiǎn)單說明:
image:為Container Manager中映像的名稱和版本號(hào),我這里用的是jellyfin官方最新版
container_name:創(chuàng)建容器的名稱
user:上面獲取的uid 1234和groups 4567
volumes:映射的文件夾,也就是Container Manager容器中的存儲(chǔ)空間設(shè)置,這里注意路徑需要文件夾右鍵->屬性->位置,而不是像存儲(chǔ)空間設(shè)置只需要/docker/...就行
ports:Container Manager容器中的端口設(shè)置
devices:群暉SSH獲取,命令為:ls?/dev/dri
group_add:群暉SSH獲取,命令依次為:ls /dev/dri -l 和?cat /etc/group | grep videodriver,第一句是查看驅(qū)動(dòng)文件夾dri的信息,我們可以發(fā)現(xiàn)有一個(gè)videodriver用戶組,第二句是查詢videodriver用戶組的id,這個(gè)值在group_add里為字符串類型,需要雙引號(hào)
其他屬性自行百度
2.Container Manager創(chuàng)建項(xiàng)目

四、jellyfin設(shè)置硬解

五、結(jié)尾
至此,所有步驟完成,便可使用jellyfin硬解視頻了。之所以這么折騰,也只是對(duì)應(yīng)開頭吃飽了撐著沒事干,當(dāng)然你也可以直接文件夾權(quán)限777,容器高權(quán)限,又不是不能用,還方便很多。
文件夾設(shè)置權(quán)限正如文中所述,群暉的共享文件夾很容易給各個(gè)用戶單獨(dú)設(shè)置權(quán)限,如果多個(gè)用戶使用同一個(gè)共享文件夾,要使不同用戶訪問共享文件夾下的不同文件、子文件夾,便可使用該設(shè)置。當(dāng)然,這一步對(duì)于本篇來說主要是為了單獨(dú)設(shè)置jellyfin容器的權(quán)限。
相當(dāng)一部分docker容器是沒有uid和gid的環(huán)境變量供我們?cè)O(shè)置的,當(dāng)我們?cè)谌簳熒闲枰L問該容器的映射文件夾時(shí),大部分都是文件夾添加Everyone用戶,設(shè)置完全控制,或者容器使用高權(quán)限執(zhí)行。群暉在Container Manager之前,只能使用命令行命令設(shè)置uid和gid,現(xiàn)在直接在Container Manager項(xiàng)目中使用docker-compose就可以方便部署容器了。
以上就是本篇所有內(nèi)容