docker 非 root,怎么玩 cron?
如果运行 docker 的宿主机固定直接加在宿主机上,如果依赖容器中的库或者程序可以通过 `docker exec`
如果你非要分,应该得先用 root 账号启动 crond 进程,然后使用普通用户添加任务
所以在 docker 里跑 cron 本身很可能就是个 XY 问题
所以 XY 是啥?
不过觉得在 docker 里用 cron 属于需求就有问题的,不是怎么解决的问题
另外你也可以试试在 user 级运行 systemd.timer
docker 内的 root 虽然和宿主的 root 是同一用户,但默认情况下 Capabilities 是极其受限的,并不具有完整的 root 权限,不能访问系统的设备等资源,只能访问容器内部的资源,且无法逃逸出容器,一般情况下根本不需要特别担心安全问题,如果担心,可以将 docker 的默认启动用户从 root 换成普通用户
并且 docker 支持 user namespace,LZ 你如果追求绝对的安全,配置 user namespace 才是解决你安全顾虑的方法,你纠结容器内非 root 用户是找错方向了
https://docs.docker.com/engine/security/userns-remap/
总结:cron 直接 root 跑
虽然不知道你打算怎么用 docker,使用 docke 内的 root 用户不会有大安全问题(比谁都注重安全的基于 docker 的各种云服务都能跑 root 用户要不安全早爆炸了),你既然如此顾虑不太着边际的安全问题的话就应该尽量想办法解决 user namespace 问题