「sudoによる入出力のロギング」の版間の差分
提供: セキュリティ
(ページの作成:「<!-- vim: filetype=mediawiki --> sudo では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます...」) |
(相違点なし)
|
2013年9月7日 (土) 21:07時点における版
sudo では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます。
概要
sudo では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます。
事前準備
user というユーザーを用意します。パスワードを設定します。
$ sudo adduser $ sudo passwd user
設定
sudo visudo で sudoers に設定を行います。入出力のロギングの設定を追加します。
User_Alias OPS_USERS = user Defaults:OPS_USERS log_output,log_input OPS_USERS ALL=(ALL) ALL
ログのディレクトリ
ログ は、 /var/log/sudo-io に格納されます。
使い方
ロギング
ユーザー user で sudo コマンドでzsh を起動します。zsh やzsh から派生プロセスへの入出力がすべて記録されます。
$ su user $ sudo zsh # ps # top # vim /tmp/XYZ # exit $
ターミナルの入出力がすべて保存されます。
ロギングしたデータの一覧
sudoreplay コマンドでログインしたセッションの一覧を確認できます。
$ sudo sudoreplay -l Sep 7 20:07:56 2013 : user : TTY=/dev/pts/3 ; CWD=/home/user ; USER=root ; TSID=000001 ; COMMAND=/bin/zsh Sep 7 20:08:51 2013 : user : TTY=/dev/pts/3 ; CWD=/home/user ; USER=root ; TSID=000002 ; COMMAND=/bin/zsh Sep 7 20:09:28 2013 : user : TTY=/dev/pts/3 ; CWD=/home/user ; USER=root ; TSID=000003 ; COMMAND=/bin/zsh
ユーザー foo のセッションを一覧表示します。
sudoreplay -l user foo
イベントの再生
sudoreplay コマンドを使用して、ターミナルの入出力を再現できます。 sudoreplay -l で確認した TSID を指定します。
$ sudo sudreplay 000003
作成されるファイル
$ sudo find /var/log/sudo-io/00/00/01 /var/log/sudo-io/00/00/01 /var/log/sudo-io/00/00/01/ttyout /var/log/sudo-io/00/00/01/stdin /var/log/sudo-io/00/00/01/stdout /var/log/sudo-io/00/00/01/ttyin /var/log/sudo-io/00/00/01/stderr /var/log/sudo-io/00/00/01/log /var/log/sudo-io/00/00/01/timing
- /var/log/sudo-io/00/00/01
- セッションのログのディレクトリです。
- /var/log/sudo-io/00/00/01/ttyout
- セッションの tty の出力ファイルです。
- /var/log/sudo-io/00/00/01/stdin
- stdin のログです。
- /var/log/sudo-io/00/00/01/stdout
- stdout のログです。
- /var/log/sudo-io/00/00/01/ttyin
- セッションの tty の入力ファイルです。
- /var/log/sudo-io/00/00/01/stderr
- stderr のログです。
- /var/log/sudo-io/00/00/01/log
- セッションログの情報です。
- /var/log/sudo-io/00/00/01/timing
- セッションのタイミングのファイルです。
stdin, stdout, stderr のファイルは、任意のコマンドのパイプラインの一部として sudo が使わない場合は、空っぽです。