私の履歴コマンドにコマンドを実行したタイムスタンプとユーザを追加します。これも可能ですか? 〜/ .bashrcのに次の行を追加することでタイムスタンプとユーザをbash履歴に追加する
、あなたはhistoryコマンドにタイムスタンプを追加することができます:
:HISTTIMEFORMAT="[ %Y/%m/%d %T ] "
これは歴史を実行することにより、このようなものになり
1841 [ 2016/08/25 10:57:54 ] ls
1842 [ 2016/08/25 10:57:56 ] who
1843 [ 2016/08/25 10:57:59 ] last
1844 [ 2016/08/25 10:58:10 ] uptime
1845 [ 2016/08/25 10:58:13 ] history
ここで、追加情報が必要です。どの実ユーザがこれらのコマンドを実行しましたか?
はい、履歴は保存され、個々のユーザーごとに$ HISTFILE(〜/ .bash_history)に書き込まれますが、通常はすべてのユーザーに "firstname-name"などのユーザー自身のログインがあります。
「max-mustermann」と呼ばれるユーザーの例は、SSH経由でログインし、たとえば「root」というユーザーに切り替えます。ユーザー "max-mustermann"は現在 "root"として動作しています。
「実際の」ユーザー(この場合は「max-mustermann」)と使用されたIPアドレスなどの追加情報を記録して、「uptime」というコマンドを実行したユーザーを識別できます"ルート"。私は解決策を見つけましたが、実際には機能しませんでした。それをテストするためにあなたの〜/ .bashrcに以下の行を追加します。
TTY_CON=$(tty | cut -d '/' -f 3-);
HIST_WHO_INFO=$(who | grep "${TTY_CON}" | cut -d ' ' -f 1,12);
HISTTIMEFORMAT="[ %Y/%m/%d %T by ${HIST_WHO_INFO} ] "
これは、このような何かを返します。完璧だ
1848 [ 2016/08/25 11:06:47 by max-mustermann (10.50.1.42:S.0) ] ls
1849 [ 2016/08/25 11:06:48 by max-mustermann (10.50.1.42:S.0) ] who
1850 [ 2016/08/25 11:06:49 by max-mustermann (10.50.1.42:S.0) ] last
1851 [ 2016/08/25 11:06:51 by max-mustermann (10.50.1.42:S.0) ] uptime
1852 [ 2016/08/25 11:06:52 by max-mustermann (10.50.1.42:S.0) ] history
を、残念ながら、それは実際のユーザーを保存/保持しません歴史と一緒に。
1848 [ 2016/08/25 11:06:47 by somebody-else (10.50.1.18) ] ls
1849 [ 2016/08/25 11:06:48 by somebody-else (10.50.1.18) ] who
1850 [ 2016/08/25 11:06:49 by somebody-else (10.50.1.18) ] last
1851 [ 2016/08/25 11:06:51 by somebody-else (10.50.1.18) ] uptime
1852 [ 2016/08/25 11:06:52 by somebody-else (10.50.1.18) ] history
1853 [ 2016/08/25 11:08:13 by somebody-else (10.50.1.18) ] history
がどのように私はこの問題を解決することができます誰かがログインすると、この例では、ユーザ「MAX-mustermann」として実行されたすべてのコマンドは、ログインした新しいユーザーに更新されますでしょうか?
ヒントはありがたいですが、残念ながら、2番目のヒントでも同じ結果になります。 "sudo su"の代わりに "sudo -i"を使うこともできますが、同じことが起こります。最初の解決策は私のための選択肢ではありませんが、実際の解決策かもしれません。 – Sebbo