デフォルトでは、各セッションのすべての端末の入力と出力をローカルファイルに書き込むにはどうすればよいですか?

デフォルトでは、各セッションのすべての端末の入力と出力をローカルファイルに書き込むにはどうすればよいですか?

scriptこのコマンドを使用すると、すべてのキーボード入力と画面出力をファイルに書き込むことができますが、端末セッションを開始するたびにこのコマンドを呼び出す必要があります。 $ HISTSIZEに達した後も、以前のコマンドが失われないように、.bash_historyファイルのタイムスタンプバージョンを維持します。 .bashrcの私の$ HISTFILEステートメントはですHISTFILE=~/.bash_history_$(date '+%Y%m%d_%H_%M_%S_%N').txt。これは、実行されたコマンドのログを生成する必要がある要件を満たしますが、出力をファイルに書き込むことはありません。すべてのstdin入力とstdoutとstderr出力をタイムスタンプファイルに書き込むために、.bashrcまたは.profileに何かを入れることができますか?これはユーザーのアクティビティを監視するのにも役立ちますが、後で参照するためにのみ必要です。

編集する: 入れたら

script /ramdisk/consoleOutput_$(whoami)_$(date +'%Y_%m_%d_%H_%M_%S_%N').txt ; exit

~/.profileの終わりに、これはテストユーザーに私が望むものと同じです。

コマンドが端末で終了した;exit後の追加内容。scriptユーザーがログインした状態で「exit」と入力すると、scriptセッションは終了します。追加の「終了」は、〜/ .profileで終了するとSSH /ターミナルセッションを終了します。ルートのみを読み取るためにchownファイルをルートに送信するアドインを作成する予定です。chmod 600その後、安全な場所に移動します。

catまた、を使って色を見ることもできますmore。エディタで開くと、色の生成に使用される制御文字が表示されます。私は同意します。

ベストアンサー1

目標がシステムを監視することであれば、名前が示すようにpam_tty_auditpam_tty_auditパムモジュール正しく設定されている場合、ユーザーはセッションを開いてTTYを取得するたびに呼び出されます。このモジュールはすべての入力と出力を記録し、記録された内容をすべて送信します。審査悪魔。その後、auditdデーモンを照会してログを表示できます。

RedHatは良いスタートガイドを提供していますpam_tty_audithttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sec-Configuring_PAM_for_Auditing.html
RedHatまたはFedoraに基づいていないディストリビューションの場合、このガイドラインはまだ有効ですが/etc/pam.d/

これが完全に安全ではないことに注意してください。 TTYなしでコマンドを実行する方法はいくつかあります。たとえば、SSH経由で接続している場合は実行でき、ssh foo.example.com bash -iコマンドが指定されているため、TTYは割り当てられません。これが発生するのを防ぐためにできることはいくつかあります。

また、ログへのアクセスが安全であることを確認する必要があります。pam_tty_audit記録みんなTTYアクティビティには、入力したパスワードが含まれます。

おすすめ記事