bor*_*ude 5 linux docker kubernetes alpine-linux
我基本上试图以crond -froot身份运行,同时让默认用户有所不同。
由于它运行的 crontabs 使用来自图像上其他文件的敏感信息,我想授予这些文件的 root 访问权限,启动 crond 进程,然后将用户切换到新创建的用户。通过这种方式,cronjobs 将能够获得他们需要的信息,同时保护容器中的敏感文件免受任何可能获得 exec 访问的人的影响。
已经尝试了一些这样的事情:
USER root
CMD ["./runCrons.sh"]
USER newuser
Run Code Online (Sandbox Code Playgroud)
但这不会以 root 身份运行 crond 进程,而是以 newuser 身份运行。
如果有人有解决方案,它将为我节省一些挖掘和实验。
小智 2
在构建 Docker 镜像时,创建一个属于 sudo 组的用户,该用户无需密码即可运行所有 sudo 命令。
考虑下面的示例,它使用名为 myuser 的用户和 sudo pass 创建一个名为 test 的 docker 映像:
$ cat Dockerfile
FROM debian:latest
ENV user_name myuser
RUN apt-get update
RUN apt-get install -y sudo
RUN useradd --create-home -s /bin/bash ${user_name}
RUN echo "${user_name} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${user_name}
WORKDIR /home/${user_name}
USER ${user_name}
CMD /bin/bash
Run Code Online (Sandbox Code Playgroud)
然后构建图像:
docker build -t test。
现在要修复标准用户的 cron 权限问题,请确保 cron 脚本上使用的所有命令都以 sudo 开头,如下所示。
CMD ["sudo ./runCrons.sh"]
由于使用 sudo 时不需要密码,因此一切都应该正常执行,您应该可以开始了。
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |