我正在亚马逊 Linux 上运行 docker。我已经为特定操作设置了一个 cron 作业。它返回一个错误,指出无法创建/删除指定会话的条目 Docker 版本:1.12.6(客户端和服务器) API版本:1.24(客户端和服务器)
该错误通常是由于 pam 安全问题造成的。
最近已在 debian 中修复:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726661 和 Ubuntu Wily (15.10)。
作为解决方法,您可以尝试在 /etc/pam.d/cron 中注释模块 pam_loginuid.so 并重新启动 cron (或 docker 容器)。
您可以在 Dockerfile 中使用类似的内容:
RUN sed -i '/session required pam_loginuid.so/c\#session required pam_loginuid.so' /etc/pam.d/cron
今天,se 在通过主管运行 crond 的 phpfpm-Container 中看到了这个问题。当我们将执行环境从 Docker 更改为 Podman 后,cronjobs 停止工作并抛出上述错误消息:“无法为指定会话创建/删除条目”。
该映像基于 Debian 12.3,显然提到的解决方法(注释掉 /etc/pam.d/cron 中的行)有效。
但是为什么呢?为什么到了2023年,这种情况仍然发生?为什么只有 Podman 会出现这种情况,而 Docker 不会出现这种情况?是否需要一些特殊功能,Podman 默认情况下没有设置,但 Docker 却设置了?
如果我们找出导致此行为的原因,我将更新这篇文章。