履歴エントリにネットワークまたはユーザーソース接続データを追加するにはどうすればよいですか?

履歴エントリにネットワークまたはユーザーソース接続データを追加するにはどうすればよいですか?

私が管理しているシステムのすべてのユーザーの履歴設定を変更したいと思います。接続端末の情報を含めたいです。who

sysadmin:/ # who
sysadmin  pts/0        Mar 26 07:11 (sysadmin.doofus.local)

現在、次の方法で自分の履歴を修正します。私はこれらの設定の多くがここで何度も取り上げられていることを知っています。しかし、私は」Juliet KempのLinuxシステム管理クックブック「かなりずっと前に。

shopt -s histappend
PROMPT_COMMAND='history -n;history -a'
HISTSIZE=100000
HISTFILESIZE=100000
HISTTIMEFORMAT="%m/%d/%y %T  "

shopt -s histappend複数の端末を開いたときに情報が失われる問題を修正しました。

PROMPT_COMMAND='history -n;history -a'複数の端末にわたってリアルタイムで履歴を追加する拡張機能です。

HISTSIZE=100000 HISTFILESIZE=100000history保存期間の延長

HISTTIMEFORMAT="%m/%d/%y %T 「記録の各行にタイムスタンプを撮ります。

あなたが通常得るもの history

835  ls
836  cd ..

私の修正された現在のhistory結果

5853  03/26/12 07:16:49  ls
5854  03/26/12 07:16:50  ll

historyお返しで見たいことから

5853  03/26/12 07:16:49  sysadmin.doofus.local    ls
5854  03/26/12 07:16:50  sysadmin.doofus.local    ll

001  03/26/12 05:11:29  demo_user.doofus.local    cd
002  03/26/12 05:11:30  demo_user.doofus.local    ll

名前だけ見てDNS「結婚」したのではありませんでした。whoどのようなクエリやクエリも実行せずに他の場所からインポートしたいです。 IPアドレスに満足しています。

002  03/26/12 05:11:30  192.168.0.2    ll

なぜ?同じグループ内の複数のユーザーがユーザーIDを共有して日常的なタスクを実行する複数のシステムを管理します。これにより、組織内の実際の場所と実際のユーザーを歴史的に実行したタスクに関連付けることができます。

私はこれが最適ではないことを知ってそれを変えたいのですが、クルーズ船の大きさの船にいるときは急回転しようとしません。 (注:これにより、乗客はあなたを船から投げます。)

とにかく、より良いソリューションに移行できるようになるまで、この追跡機能を持ちたいと思います。

また、history私が現在修正するために使用していることに関する提案があれば聞きたいと思います。

ありがとう、

編集:1

私は他のプログラムを実行したくないし、「理由に応じて」追加の設定をしたくありません。

オーバーヘッドを追加したいです0。追加する必要がある場合は、サイズを小さくする必要があります。

私は私のユーザーを信頼し、(何が起こるか)10人のユーザーのうち同じユーザー名:パスワードでシステムにログインしたユーザーが誰であるかを確認したいと思います。あるいは、ユーザでなくても、cron特定のタスクを実行するために接続を実行するユーザとしてシステムで忘れられてもよい。あるいは、たとえばアプリケーションを使用すると、ジョブをリンクしてBMC Control-M実行sshできます。 「悪いユーザー」を見つけるのではなく、最小限の労力で追跡できることが重要です。

編集2:

システムはSLESとRHELを実行します。

ベストアンサー1

Lluaの提案に基づいて、歴史についてもっと勉強することができます。システム全体のBASH RCファイル(/etc/bash.bashrcなど)に1行を追加します。

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

システムロガーで「local6」のロギングを設定します。たぶん、次のようなものがあります。

local6.*    /var/log/commands.log

システムロガーを再起動します。ログファイルの回転を設定することもできます。ログアウトログインすると、履歴は次の形式で/var/log/commands.logに記録されます。

日付/時刻ホスト名ロガー:ユーザー名[audit_pid]:コマンド[return_val]

これは好みに応じてさらに調整することができます。

おすすめ記事