当以非根docker用户运行crontab时发生错误

2022-01-25 13:28:00 标签 linuxdockercroncontainerscentos7

我有一个centos7 docker容器,它是作为非root用户运行。我安装了cronie,并从容器入口点。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

如果我运行crontab命令作为rsuser然后我得到以下错误

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

找不到解决的办法。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码