为什么我会在 /var/log/auth.log 中看到每小时打开和关闭一次 CRON 会话?

为什么我会在 /var/log/auth.log 中看到每小时打开和关闭一次 CRON 会话?

我对 Linux 整体上还很陌生,所以这个问题可能比较愚蠢 - 但我仍然想知道答案

今天早上,当我查看我的 /var/log/auth.log(我被告知要养成习惯)时,我注意到它每小时记录一次如下事件:

     May 13 20:17:01 Ubuntu-Server-1401-VM CRON[2280]: pam_unix(cron:session): session opened for user root by (uid=0)
     May 13 20:17:01 Ubuntu-Server-1401-VM CRON[2280]: session closed for user root

然后,在我打开日志之前,这种情况每小时都会在 x:17:01 发生一次。在此期间(日志条目发生的时间),与此服务器的 SSH 连接一直保持活动状态。我最好的猜测是,我的 SSH 客户端每小时都会查看它是否可以获得 root 访问权限,以此来验证与服务器的 SSH 连接 - 但我希望安全起见。有人知道这是什么吗?

答案1

假设你没有对默认cron设置做任何更改,这就是你的/etc/crontab运行情况。在我的 Ubuntu 10.04.3 LTS 服务器上,其内容包括:

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

因此,cron每小时唤醒一次并运行位于 中的任何脚本/etc/cron.hourly。您可能没有任何脚本,这就是它不执行任何操作的原因。它只是运行一个root执行run-parts然后再次关闭会话。

答案2

crond当守护进程在后台运行任务时,这些日志条目由 PAM 库写入。crond代表系统和系统上的用户按计划运行作业。

每个用户都有自己的crontab配置文件,可以使用命令编辑crontab -e或使用 显示crontab -l。系统管理员还可以通过大量/etc/文件和目录配置作业;/etc/cron.d/为服务提供一个方便的地方来放置自己的配置,并/etc/crontab驱动hourlydailyweekly目录,以及运行管理员可能选择运行的任何内容。

crond在运行作业之前,将用户更改为正确的用户(在文件/etc/crontab/etc/cron.d/目录中指定,或从用户提供的文件中指定);它使用crontab聚丙烯酰胺系统更改用户。

PAM 提供了一个单一位置来配置不同的用户身份验证和授权方式,并提供会话设置,以及提供更改密码(或其他身份验证令牌)的方法。每个使用 PAM 的服务都有一个配置文件,其中/etc/pam.d/描述了“登录”用户时要使用哪些 PAM 模块。

我的/etc/pam.d/cron文件如下所示:

# The PAM configuration file for the cron daemon

@include common-auth

# Read environment variables from pam_env's default files, /etc/environment
# and /etc/security/pam_env.conf.
session       required   pam_env.so

# In addition, read system locale information
session       required   pam_env.so envfile=/etc/default/locale

@include common-account
@include common-session-noninteractive 

# Sets up user limits, please define limits for cron tasks
# through /etc/security/limits.conf
session    required   pam_limits.so

这可确保为用户配置的限制在用户通过 运行任务时应用于用户的任务cron。如果您想要更改每个服务的限制,您可以pam_limits.so在此文件中配置您自己的限制,并应用与 ssh 登录 ( ) 或控制台登录 ( )conf=/etc/security/cron-limits.conf不同的限制。/etc/pam.d/sshd/etc/pam.d/login

相关内容