以非 root docker 用户身份运行 crontab 时出错

时间:2021-06-20 08:04:24

标签: linux docker cron containers centos7

我有一个以非 root 用户身份运行的 centos7 docker 容器。我安装了 cronie 并从容器 entrypoint.sh 以非 root 用户身份启动了 crond

entryoint.sh

    #!/bin/bash
    sleep 2h

我登录到容器并在调试模式下手动运行 crontab

    crond -x ext

我的 Dockerfile

FROM centos:7
RUN groupadd rsuser -g 10001
RUN useradd -d /home/rsuser -m rsuser -u 10001 -g 10001 -p rsuser
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
RUN yum install -y cronie && yum clean all
RUN touch /var/run/crond.pid
RUN echo '* * * * * root echo "crontab running"' >> /etc/crontab
RUN setcap cap_setgid+ep /usr/sbin/crond && \
    setcap cap_setuid+ep /usr/sbin/crond
RUN chown -R rsuser:rsuser /var/run/crond.pid
RUN chmod 400 /etc/shadow
USER 10001
ENTRYPOINT ["/entrypoint.sh"]

如果我以 root 身份运行 crontab 命令,则会出现以下错误

* * * * * root echo "crontab running"
log_it: (CRON 23) ERROR (setgid failed): Operation not permitted

如果我以 rsuser 身份运行 crontab 命令,则会出现以下错误

* * * * * rsuser echo "crontab running"
log_it: (CRON 23) ERROR (initgroups failed): Operation not permitted

没有找到解决方法。

0 个答案:

没有答案
相关问题