• 陪伴互联网运营小白共同探索成长,与IT爱好者共享探索乐趣
  • 建站只为分享,欢迎在PC端文章面打赏支持
  • 使用Ctrl+D 可收藏本站

在PVE LXC上通过Debian安装emby,也谈硬解入门到放弃、映射与权限

好玩有趣 陆子方 1年前 (2023-04-12) 910次浏览 0个评论 扫描二维码

硬解,从入门到放弃

说多了都是泪,其实也花了很多时间研究jellyfin硬解的问题,在lxc中能识别到核显,但无法使用。使用docker的方式能正常解码,但cpu占用是爬升。想了很久,平时大部分的视频,都是直接播放,不涉及转码,要硬解有何用?

最终,在折腾中放弃了硬解方案。

从jellyfin到emby

包括plex,三个都装了一下。五年以前,最早接触的就是plex。对比了一下,看重emby的随机播放。jellyfin也有。反正就是腻了要换一下。

确定使用LXC容器,但不想套docker了,确实有点小问题。一路安装成功,最终发现只读不可写,这又是一波猛操作猛折腾。多年以前我写过文章,提到了文件挂载问题,有网友就问写权限怎么办?那时我不关心写,现在我希望整体管理。挖坑又开始了。

LXC,映射权限入门到放弃

不管是硬解、docker、现在的只读不可写,都和LXC的映射机制有关。

特权容器,主机对LXC都是一样的,这样有风险。所以默认非特权,主机的用户和用户组从0开始,对应LXC容器里的用户和用户组从100000开始。

好家伙,你干破了LXC安全防线,很快你发现无权访问宿主机真实内容。你以为是root的ID,其实你在宿主机那的ID是100000,没招了吧?但这给我们造成了困扰。

在硬解时代,就是要把特定的用户和组ID映射到主机上

在非特权LXC运行Docker时代,也是要映射相应在用户和组。在容器添加普通用户,通过加入sudo组执行docker。当然,添加的普通用户是要映射到宿主机上的。

在emby读写授权时代,也是涉及到映射问题。如果宿主机用户及组ID为1000,在LXC容器中创建了用户及组ID为1000,把emby的用户加入到组1000中。再加上映射,这样,宿主和容器中的用户1000和emby的966都对应了,按理可以读写?

不行的,很快你发现,主机中的996并不是emby,你在LXC中授权了emby加入用户组1000,宿主机上发现没有emby这个对象。或者,你可以尝试授权996加入组1000。

你以为,开启特权模式就牛逼了?其实和上面的情况是一样吧,只不过一个全部对应,一个手工对应。

好累啊,搞不赢了

反正,太累了,不如换个简单的方法吧。既然容器996对应主机上的100996。那直接在主机授权吧

chown -R 100996.100996 /mnt/st2/
find /mnt/st2/ -type d -exec chmod 755 {} \;
find /mnt/st2/ -type f -exec chmod 664 {} \;

然后,删除动作丝滑流畅。
得,创建smb共享,直接使用emby用户就好了,反正宿主机里root万能
但是,如果别人攻破了你的容器,这些文件有危险噢

映射的资料

# uid map: from uid 0 map 1005 uids (in the ct) to the range starting 100000 (on the host), so 0..1004 (ct) → 100000..101004 (host)
lxc.idmap = u 0 100000 1005
lxc.idmap = g 0 100000 1005
# we map 1 uid starting from uid 1005 onto 1005, so 1005 → 1005
lxc.idmap = u 1005 1005 1
lxc.idmap = g 1005 1005 1
# we map the rest of 65535 from 1006 upto 101006, so 1006..65535 → 101006..165535
lxc.idmap = u 1006 101006 64530
lxc.idmap = g 1006 101006 64530

u是用户,g是用户组。0是宿主机,100000是容器。最后一个是增加的id数

如果宿主机用户1000对应容器的1005,只有一个端口。那么就是:

lxc.idmap = u 1000 1005 1

别忘了在 /etc/subgid、 /etc/subuid 两个文件中都加入:

root:1005:1

子方有料原创丨转载请注明原文链接
期待您的评论或捐赠,这是最好的鼓励和支持!
喜欢 (0)
[赞赏使我快乐]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到