解决emby无法删除文件问题

emby不能删除文件就是权限问题。
查看emby是哪个用户执行的,要么把emby的执行用户改成文件的用户,要么把文件改为emby执行的用户。
只要有权限肯定能删掉的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 1. 首先进入容器内部
docker exec -it emby /bin/sh

# 2. 查看emby服务使用哪个用户执行的,可以看到emby是由bin用户执行的
/# ps ps -ef
PID USER TIME COMMAND
1 root 0:00 s6-svscan -t0 /var/run/s6/services
32 root 0:00 s6-supervise s6-fdholderd
171 root 0:00 s6-supervise emby-server
174 root 0:00 sh ./run
196 bin 0:14 /system/EmbyServer -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3

# 3. 回到宿主机,查看镜像看为啥使用bin执行呢
docker image inspect lovechen/embyserver

#4. 结果太多我就不全部粘贴了,在Env下面可以看到镜像指定了 UID=2,GID=2,而2在我的系统里就是用户bin
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=en_US.UTF-8",
"HOME=/tmp",
"AMDGPU_IDS=/share/libdrm/amdgpu.ids",
"FONTCONFIG_PATH=/etc/fonts",
"LD_LIBRARY_PATH=/lib:/system",
"LIBVA_DRIVERS_PATH=/lib/dri",
"OCL_ICD_VENDORS=/etc/OpenCL/vendors",
"PCI_IDS_PATH=/share/hwdata/pci.ids",
"SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt",
"UID=2",
"GID=2",
"GIDLIST=2",
"NVIDIA_VISIBLE_DEVICES=all",
"NVIDIA_DRIVER_CAPABILITIES=compute,video,utility",
"XDG_CACHE_HOME=/config/cache"
],

找到了问题解决就简单了。修改compose文件覆盖上面两个属性,在我的盒子上,我是使用root执行的因此将UID,GID覆盖成0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
emby:
image: lovechen/embyserver:latest
container_name: emby
network_mode: host
environment:
- UID=0 #覆盖镜像中的 2
- GID=0
devices:
- /dev/dri:/dev/dri
volumes:
- /opt/docker/emby/emby-config:/config # 配置目录
- /mnt/sharefile:/sharefile # 资源挂载目录
restart: 'unless-stopped'
extra_hosts:
- "host.docker.internal:host-gateway"

ok 下线掉容器再重新up,可以正常删除了。 进入容器内部也发现emby是已我们配置的root角色执行的。
因为我是一台电视盒子自己用我没有创多用户,自己根据自己的情况调整用户就行


解决emby无法删除文件问题
https://www.huangchaoyu.com/2055878545.html
作者
hcy
发布于
2024年9月4日
更新于
2024年10月18日
许可协议