web-dev-qa-db-fra.com

Pourquoi est-ce qu'une session CRON s'ouvre et se ferme toutes les heures dans /var/log/auth.log?

Je suis assez récent avec Linux dans son ensemble, alors c'est peut-être une question idiote - mais j'aimerais quand même connaître la réponse.

Ce matin, lorsque je regarde mon /var/log/auth.log (on m'a dit de prendre l'habitude), je remarque qu'une fois par heure, il a enregistré un événement qui ressemble à ceci:

     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

Cela a ensuite commencé à se produire toutes les heures à x: 17: 01 jusqu'à ce que j'ai ouvert le journal. Une connexion SSH à ce serveur a été maintenue en vie pendant cette période (où le journal s’est déroulé). Ma meilleure hypothèse est que mon client SSH vérifie toutes les heures s'il peut ou non obtenir un accès root afin de vérifier la connexion entre SSH et le serveur - mais j'aimerais être du côté sûr. Est-ce que quelqu'un sait ce que c'est?

40
Terje Gundersen

En supposant que vous n'avez rien modifié depuis la configuration par défaut de cronname__, il s'agit de votre /etc/crontab en cours d'exécution. Sur mon serveur Ubuntu 10.04.3 LTS, son contenu comprend:

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

Ainsi, cronse réveille toutes les heures et exécute tous les scripts situés dans /etc/cron.hourly. Vous n'en avez probablement pas, c'est pourquoi il ne fait rien. Il exécute simplement une session rootqui exécute run-parts , puis ferme à nouveau la session.

47
terdon

Ces entrées de journal ont été écrites par les bibliothèques PAM lorsque le démon crond a exécuté des tâches en arrière-plan. crond exécute les travaux selon un planning, pour le compte du système et des utilisateurs du système.

Chaque utilisateur a son propre fichier de configuration crontab, qui peut être modifié à l'aide de la commande crontab -e ou affiché à l'aide de crontab -l. L'administrateur système peut également configurer des tâches via une multitude de fichiers et de répertoires /etc/; /etc/cron.d/ permet aux services de supprimer leurs propres configurations et /etc/crontab pilote les répertoires hourly, daily et weekly, ainsi que tout ce que l'administrateur peut choisir d'exécuter.

crond changera les utilisateurs en utilisateur correct (spécifié dans le fichier /etc/crontab et le répertoire /etc/cron.d/ ou à partir des fichiers crontab fournis par l'utilisateur) avant d'exécuter les travaux; il utilise le système PAM pour changer d'utilisateur.

PAM fournit un emplacement unique pour configurer différentes manières d'authentifier et d'autoriser les utilisateurs et de fournir une configuration de session, ainsi qu'un moyen de modifier les mots de passe (ou d'autres jetons d'authentification). Chaque service qui utilise PAM a un fichier de configuration dans /etc/pam.d/ qui décrit les modules PAM à utiliser lors de la "connexion" d'un utilisateur.

Mon fichier /etc/pam.d/cron ressemble à ceci:

# 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

Cela garantit que les limites configurées pour les utilisateurs sont appliquées aux tâches des utilisateurs lorsqu'ils les exécutent via cron. Si vous souhaitez modifier ces limites par service, vous pouvez configurer pam_limits.so dans ce fichier avec votre propre conf=/etc/security/cron-limits.conf et appliquer des limites différentes de celles de la connexion ssh (/etc/pam.d/sshd) ou de la console (/etc/pam.d/login).

14
sarnold