/bin/sh: 1: ^Mno: 見つかりませんエラーが発生するのはなぜですか。

/bin/sh: 1: ^Mno: 見つかりませんエラーが発生するのはなぜですか。

私はすでに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。ただし、システムを監視し続け、これらのファイルが再び表示されることを確認してください。これは、システムがまだ破損していることを示す強力なマークです。

可能であれば、ディストリビューションが提供するセキュリティパッチをインストールします。

おすすめ記事