这篇文章有点相似,但我的比较具体。
CRON: pam_unix(cron:session): 由 (uid=0) 为用户 root 打开的会话
这真的是一个错误吗?在我们的系统中,这个过程每 5 分钟创建一次条目,这使得日志备份人员的生活变得非常困难。磁盘上存储着大量的条目。
根据以下链接,我们是否需要解决此问题,或者我们至少可以增加条目之间的列出时间吗?
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293272
http://languor.us/cron-pam-unix-cron-session-session-opened-close-user-root-uid0
我至少可以缩短条目之间的时间吗?目前我的服务器每 5 分钟就有 1 对条目。假设我将时间增加到 30 分钟,我会错过任何登录尝试吗(合法登录和黑客登录尝试)?
答案1
每次作业运行时,这些条目都会添加到日志中cron
。为了减少条目之间的时间,您必须查看您的 cron 作业并更改它们的时间安排。不过,这可能会破坏依赖于以特定时间间隔运行的作业的某些东西。
如果它们确实让您烦恼,那么只需按照 Debian bug 报告上的说明进行操作,并停止在每次作业运行时cron
记录条目即可。auth.log
即编辑/etc/pam.d/common-session-noninteractive
并添加:
session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid
前该行:会话需要 pam_unix.so
并重新启动 cron 服务(按照原始海报提供的链接)
答案2
您想要该日志消息
我想说的是,因为这条日志消息会告诉您每次 cron 作业以 root 身份运行时,这可能是恶意的,所以它应该被视为“必须有”的进程。
禁用 cron 作业
在安装新的 Linux 发行版的过程中,我注意到一些版本附带了一些启用的 cron 作业。因此,如果您不想在系统上运行随机 bash 脚本,您需要禁用它们。
Cron 作业可以从多个地方运行。因此,您要检查的第一个地方是用户 cronjobs。要检查是否存在,可以使用以下 bash 脚本:
#! /bin/bash
for user in $(awk -F':' '{ print $1}' /etc/passwd)
do
sudo crontab -u $user -l
done
如果您看到用户有 crontab,请运行命令sudo crontab -u TargetUsername -e
,然后使用注释掉所有行#
阿纳克朗
有些系统会安装 anacron,您通常会在文件中看到与 anacron 相关的作业条目/etc/crontab
。您也可以打开此文件并注释掉此处的所有条目。我通常使用Vim来编辑这个文件,例如,sudo vim /etc/crontab
Anacron 还通过服务计时器运行。因此,要进一步关闭 anacron 作业,您需要禁用anacron.timer
.要查看当前运行的计时器,请运行以下命令:systemctl list-timers
如果您在列表中看到 anacron,您可以使用 暂时停止它sudo systemctl stop anacron.timer
。永久停止运行sudo systemctl mask anacron.timer
如果 anacron 服务正在运行,您也可以用同样的方式停止它。
清理剩菜
还有一个目录可以检查 cron 作业,/etc/cron.d
.您可以使用 Vim、Nano 或其他文件编辑器编辑这些文件,就像编辑“/etc/crontab”文件一样。只需使用 注释掉每个文件中的行#
,保存,然后关闭。
测试变化
我喜欢通过运行来进行测试tail -f /var/log/auth.log
。如果有任何事情停止工作,您应该能够“取消注释”您修改的行;但关键任务的事情,根据系统的不同,可以作为定时服务来处理,就像我们在 anacron 中看到的那样,所以应该没问题。