问题描述
我对整个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连接的连接 – 但我希望安全起见。有谁知道这是什么?
最佳解决办法
假设您没有更改默认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
然后再次关闭会话。
次佳解决办法
当crond
守护程序在后台运行任务时,这些日志条目由PAM库编写。 crond
代表系统和系统上的用户按计划运行作业。
每个用户都有自己的crontab
配置文件,可以使用crontab -e
命令编辑或使用crontab -l
显示。系统管理员还可以通过大量的/etc/
文件和目录配置作业; /etc/cron.d/
为服务提供了一个放置自己配置的简易位置,/etc/crontab
驱动hourly
,daily
和weekly
目录,并运行管理员可能选择运行的任何内容。
在运行作业之前,crond
会将用户更改为正确的用户(在/etc/crontab
文件和/etc/cron.d/
目录中指定,或者从用户提供的crontab
文件中指定);它使用PAM system来更改用户。
PAM提供了一个单独的位置来配置不同的方式来验证和授权用户并提供会话设置,以及提供更改密码(或其他身份验证令牌)的方法。每个使用PAM的服务都有一个/etc/pam.d/
中的配置文件,用于描述’logging in’用户时要使用的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
运行时应用于用户的任务。如果要更改这些限制per-service,可以使用自己的conf=/etc/security/cron-limits.conf
在此文件中配置pam_limits.so
,并应用与ssh登录(/etc/pam.d/sshd
)或控制台登录(/etc/pam.d/login
)不同的限制。