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

Ter*_*sen 57 server 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
Run Code Online (Sandbox Code Playgroud)

然后它在 x:17:01 每小时发生一次,直到我打开日志。在此期间(发生日志完整的地方),与此服务器的 SSH 连接一直保持活动状态。我最好的猜测是,我的 SSH 客户端每小时都会查看它是否可以获得 root 访问权限,以此来验证与服务器的 SSH 连接的连接 - 但我想安全一点。有谁知道这是什么?

ter*_*don 63

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

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
Run Code Online (Sandbox Code Playgroud)

因此,cron每小时醒来并运行位于/etc/cron.hourly. 你可能没有,这就是为什么它什么都不做。它只是运行一个root会话,该会话执行run-parts然后再次关闭会话。

  • 把它禁用了,一定是浪费.... (2认同)

sar*_*old 19

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

每个用户都有自己的crontab配置文件,可以使用crontab -e命令进行编辑或使用crontab -l. 系统管理员还可以通过大量/etc/文件和目录来配置作业;/etc/cron.d/提供了一个简单的地方服务,放弃自己的配置和/etc/crontab驱动器hourlydailyweekly目录,以及运行可以由管理员选择运行。

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

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
Run Code Online (Sandbox Code Playgroud)

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