我正在使用 Devuan ASCII(或多或少是 Debian 9,Stretch)。现在,我/var/log/auth.log
有很多这样的条目:
Jan 6 09:45:01 mybox CRON[20951]: pam_env(cron:session): Unable to open env file: /etc/environment: No such file or directory
Jan 6 09:45:01 mybox CRON[20951]: pam_unix(cron:session): session opened for user root by (uid=0)
这显然是在我时生成的su
。
- 为什么 cron/pam_env/pam_unix 首先尝试打开该文件,而不是检查它是否存在?
- 如果他们合理地期望它,为什么它不存在?
- 我该怎么办?
答案1
回答您所有的问题
- 为什么 cron/pam_env/pam_unix 首先尝试打开该文件?
请参阅错误#646015。在某些情况下(例如与区域设置相关的内容),此文件已被弃用。但它仍然在系统范围内使用,并且每当它丢失时都会生成日志。
- 如果他们合理地期望它,为什么它不存在?
因为也许这个 bug 根本就没有被修复。史蒂夫·兰加塞克(错误#646015)说的是,新系统应该使用postinst
脚本创建该文件,就像正在升级的旧系统应该已经有该文件一样。
- 我该怎么办?
- 运行
dpkg-reconfigure libpam-modules
并查看它是否会通过其脚本创建文件postinst
。 - 如果这不起作用,请使用以下命令手动创建文件
touch /etc/environment
向 Devuan 项目报告您的问题并提供问题和您的设置的详细信息也很有趣,因为这个问题在 Debian/Devuan 分叉发生之前就已得到解决。
答案2
一个不优雅但完全有效的解决方案是为这些模块提供它们想要的东西:以 root 身份执行
touch /etc/environment
并确保权限正确,以防万一:
chmod 644 /etc/environment