xunlei icon indicating copy to clipboard operation
xunlei copied to clipboard

无需 --privileged,添加 SYS_ADMIN 权限即可正常启动,

Open wy580477 opened this issue 2 years ago • 4 comments

Podman rootless 环境,加上 --cap-add SYS_ADMIN 即可启动,无需 --privileged 给予范围更广的特权。

理论上 docker 应该也行。

wy580477 avatar Aug 30 '23 05:08 wy580477

可以尝试下

cnk3x avatar Aug 31 '23 20:08 cnk3x

除了这个特权模式 ,也没法自定义 用户以及用户组

realabertian avatar Sep 17 '23 05:09 realabertian

在truenas scale下,pod(K8S里的容器)可以在Capabilities下直接添加SYS_ADMIN正常启动, 敏感权限的朋友还是建议虚拟机套娃docker或者干脆换宿主通过SMB之类的挂载下载路径就可以了... 这里记录下作为参考

q7091696665 avatar Dec 13 '23 10:12 q7091696665

docker run -d --name=xunlei --hostname=mynas  \
--net=host  \
--restart=unless-stopped \
--cap-add SYS_ADMIN \
--cap-add SYS_CHROOT \
--security-opt apparmor:unconfined \
cnk3x/xunlei:latest

正常运行

append

调研了下 使用 直接禁用 AppArmor 权限不太好控制,可以复制一份 docker-default的,添加mount权限,启动更合适

cat docker-mount

#include <tunables/global>


profile docker-mount flags=(attach_disconnected,mediate_deleted) {

  #include <abstractions/base>


  network,
  capability,
  file,
  umount,
  mount,


  signal (receive) peer=unconfined,

  signal (send,receive) peer=docker-default,


  deny @{PROC}/* w,   # deny write for all files directly in /proc (not in a subdir)
  # deny write to files not in /proc/<number>/** or /proc/sys/**
  deny @{PROC}/{[^1-9],[^1-9][^0-9],[^1-9s][^0-9y][^0-9s],[^1-9][^0-9][^0-9][^0-9]*}/** w,
  deny @{PROC}/sys/[^k]** w,  # deny /proc/sys except /proc/sys/k* (effectively /proc/sys/kernel)
  deny @{PROC}/sys/kernel/{?,??,[^s][^h][^m]**} w,  # deny everything except shm* in /proc/sys/kernel/
  deny @{PROC}/sysrq-trigger rwklx,
  deny @{PROC}/kcore rwklx,


  deny /sys/[^f]*/** wklx,
  deny /sys/f[^s]*/** wklx,
  deny /sys/fs/[^c]*/** wklx,
  deny /sys/fs/c[^g]*/** wklx,
  deny /sys/fs/cg[^r]*/** wklx,
  deny /sys/firmware/** rwklx,
  deny /sys/kernel/security/** rwklx,


  # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container
  ptrace (trace,read) peer=docker-default,

}

执行 apparmor_parser ./docker-mount 再运行

docker run -d \
--name=xunlei \
--hostname=mynas \
--net=host \
--restart=unless-stopped  \
--security-opt apparmor=docker-mount \
--cap-add SYS_ADMIN   \
registry.cn-shenzhen.aliyuncs.com/cnk3x/xunlei:latest

tiny1990 avatar Jan 02 '24 15:01 tiny1990