ルートとしてCronジョブを実行している他のサーバーからClamavアップデートを取得するスクリプトがあります。また、ルートログインを無効にしました/sbin/nologin
。ただし、これはsshdサービスを停止し、自分のユーザーの/ bin / bashログインを削除するため、システムに深刻な影響を与えます。この状態に達するためにとられたステップは次のとおりです。
- /root/ に実行可能なスクリプトを作成します。私の場合は、Clamavを更新するスクリプトです。
- root ユーザーのシェルを /bin/bash から /sbin/nologin に変更して、root ログインが無効になっていることを確認します。
- このスクリプトをrootとして毎分実行するには、/etc/crontabにエントリを手動で追加します。
- これでSSHサービスを再起動し、5分後にSSHを試してください。
私が/etc/crontab
入りながら。
* * * * * root /root/clamu.sh >/dev/null 2>&1
以下はclamu.sh
スクリプトです
#this script need to run by root user
#create a folder temp
mkdir /temp
#go to the temp dir
cd /temp
#clean this folder
rm -f *
#Copying the files from server to temp dir
scp -P 2277 [email protected]:/var/lib/clamav/daily.* .
scp -P 2277 [email protected]:/var/lib/clamav/bytecode.* .
#Updating the files to actual location
rm -f /var/lib/clamav/daily.*
cp -u daily.* /var/lib/clamav/
cp -u bytecode.* /var/lib/clamav/
#do scanning & save report
cd /
clamscan --recursive=yes >> /var/log/clamav/clamd.log
# Clean the /temp folder
cd /temp
rm -f *
を使用していますCentOS 7 x64
。これは展開とは関係がないと思いますが、これは一般的な問題です。
クローンでこのスクリプトをrootとして実行すると問題が発生することがわかります。しかし、これがsshの失敗とカーネルパニックを引き起こす理由は、何が起こっているのかを理解するために知りたいことです。私は素人のLinuxユーザーなので、説明してくれてありがとう。ありがとうございます。
編集する こんにちは。もともと質問ではないので、研究結果を示さなかった。この問題は私のリモート仮想マシンの1つで発生し、デバッグするログがありません。ログにアクセスする方法を見つけたら、トラブルシューティングを試み、crontabエントリで他のユーザーを使用して問題を解決できました。しかし、クローンの仕事がどのように多くのダメージを与える可能性についての疑問は残っています。これが私に必要な答えであり、おそらく私が見つけることができる方向でもありました。
答え1
本当に存在しますか?/temp
(そう言っていませんか/tmp
?)
そうでない場合、スクリプトはcd
実行を試みて/temp
失敗し、すべてのコマンドは起動ディレクトリから実行されます。
最後の2つのコマンドはcd
最初に/
、次にcd
(/temp
存在しない可能性があります)、rm
すべて(通常はルートファイルシステム)を実行するため、特に危険です。
rm
コマンドのフルパスを指定する必要があります。
なぜこれを見るのかはわかりませんが、スクリプトが非常に危険なので、まず修正して問題が解決するかどうかを確認します。
答え2
私の考えでは、rootユーザーを完全に無効にしてはいけません。 rootとしてログインできないようにするには、でディレクティブを設定する必要がありますssh
。PermitRootLogin no
/etc/ssh/sshd_config
他のアプリケーションでは、ほとんどの同等の設定が可能です。