私はすでにfor user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done
入場しました
no crontab for root
no crontab for daemon
...
no crontab for apache2
/var/mail/root に新しいメールがあるというメッセージを頻繁に受け取ります。
読んでみると全く同じです。
From [email protected] Wed Aug 2 15:40:02 2017
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Received: by lxc2014.localdomain (Postfix, from userid 0)
id 03E571D666; Wed, 2 Aug 2017 15:40:02 +0000 (UTC)
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <root@lxc2014> /dev/.x;^Mno crontab for root
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <[email protected]>
Date: Wed, 2 Aug 2017 15:40:02 +0000 (UTC)
/bin/sh: 1: ^Mno: not found
^Mが\ rであることはわかりますが、cronがこのファイルを検索するのはなぜですか?
答え1
このようなメールを受け取ると
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <root@lxc2014> /dev/.x;^Mno crontab for root
X-Cron-Env: <LOGNAME=root>
/bin/sh: 1: ^Mno: not found
そして、どのcrontabに問題のコマンドが含まれているのかわかりません。標準位置からコマンドフラグメントをgrepできます。
grep -r "no crontab" /etc/cron* /var/spool/cron | cat -vet
cat -vet
目に見えないカーソルを動かすための組み込み制御文字が表示されます。
あなたの場合は、次のコマンドを見つけました。
/var/spool/cron/crontabs/root:* * * * * /dev/.x;^Mno crontab for root$
ファイルには次の内容が含まれています(読みやすくするために改行が追加されました)。
# DO NOT EDIT THIS FILE - edit the master and reinstall.\n
# (- installed on Thu Jul 20 20:50:12 2017)\n
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)\n
* * * * * /dev/.x;^Mno crontab for root
含まれている文字のためにCtrl+M実行されcrontab -u root -l
ますno crontab for root
。 誰かがcrontabエントリを隠そうとしているようです。セキュリティとフォレンジックに精通している人がシステムを調査し、システムが損傷していることを確認することをお勧めします。
crontabを使用してこのcrontabを削除できますcrontab -u root -r
。
その文字列が/dev/.x
存在せず、以下のファイルには表示されないと述べました/etc
。ただし、システムを監視し続け、これらのファイルが再び表示されることを確認してください。これは、システムがまだ破損していることを示す強力なマークです。
可能であれば、ディストリビューションが提供するセキュリティパッチをインストールします。