「sudoによる入出力のロギング」の版間の差分

提供: セキュリティ
移動: 案内検索
(作成されるファイル)
 
行1: 行1:
<!--
 
vim: filetype=mediawiki
 
-->
 
 
[[sudo]] では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます。
 
[[sudo]] では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます。
  
行8: 行5:
 
== 概要 ==
 
== 概要 ==
 
[[sudo]] では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます。
 
[[sudo]] では、入出力のロギングを行えます。使い方によっては、ターミナルの入出力を記録できます。
 
 
== 事前準備 ==
 
== 事前準備 ==
 
user というユーザーを用意します。[[パスワード]]を設定します。
 
user というユーザーを用意します。[[パスワード]]を設定します。
行15: 行11:
 
$ sudo passwd user
 
$ sudo passwd user
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== 設定 ==
 
== 設定 ==
 
 
sudo visudo で [[sudoers]] に設定を行います。入出力のロギングの設定を追加します。
 
sudo visudo で [[sudoers]] に設定を行います。入出力のロギングの設定を追加します。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
行24: 行18:
 
OPS_USERS ALL=(ALL) ALL
 
OPS_USERS ALL=(ALL) ALL
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== ログのディレクトリ ==
 
== ログのディレクトリ ==
 
 
[[ログ]] は、 /var/log/sudo-io に格納されます。
 
[[ログ]] は、 /var/log/sudo-io に格納されます。
 
 
== 使い方 ==
 
== 使い方 ==
 
 
=== ロギング ===
 
=== ロギング ===
 
ユーザー user で [[sudo]] コマンドで[[zsh]] を起動します。[[zsh]] や[[zsh]] から派生プロセスへの入出力がすべて記録されます。
 
ユーザー user で [[sudo]] コマンドで[[zsh]] を起動します。[[zsh]] や[[zsh]] から派生プロセスへの入出力がすべて記録されます。
行43: 行33:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
ターミナルの入出力がすべて保存されます。
 
ターミナルの入出力がすべて保存されます。
 
 
=== ロギングしたデータの一覧 ===
 
=== ロギングしたデータの一覧 ===
 
 
[[sudoreplay]] コマンドでログインしたセッションの一覧を確認できます。
 
[[sudoreplay]] コマンドでログインしたセッションの一覧を確認できます。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
行61: 行49:
 
sudoreplay -l user foo
 
sudoreplay -l user foo
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== イベントの再生 ===
 
=== イベントの再生 ===
 
 
[[sudoreplay]] コマンドを使用して、ターミナルの入出力を再現できます。 sudoreplay -l で確認した TSID を指定します。
 
[[sudoreplay]] コマンドを使用して、ターミナルの入出力を再現できます。 sudoreplay -l で確認した TSID を指定します。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
$ sudo sudreplay 000003
 
$ sudo sudreplay 000003
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== 作成されるファイル ===
 
=== 作成されるファイル ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
$ sudo find /var/log/sudo-io/00/00/01
 
$ sudo find /var/log/sudo-io/00/00/01
行84: 行68:
  
 
;/var/log/sudo-io/00/00/01: セッションのログのディレクトリです。
 
;/var/log/sudo-io/00/00/01: セッションのログのディレクトリです。
;/var/log/sudo-io/00/00/01/ttyout: セッションの [[tty]] の出力ファイルです。
+
;/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/stdin: [[stdin]] のログです。
 
;/var/log/sudo-io/00/00/01/stdout: [[stdout]] のログです。
 
;/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/ttyin: セッションの tty の入力ファイルです。
 
;/var/log/sudo-io/00/00/01/stderr: [[stderr]] のログです。
 
;/var/log/sudo-io/00/00/01/stderr: [[stderr]] のログです。
 
;/var/log/sudo-io/00/00/01/log: セッションログの情報です。
 
;/var/log/sudo-io/00/00/01/log: セッションログの情報です。
行93: 行77:
  
 
[[stdin]], [[stdout]], [[stderr]] のファイルは、任意のコマンドのパイプラインの一部として [[sudo]] を使わない場合は、空っぽです。
 
[[stdin]], [[stdout]], [[stderr]] のファイルは、任意のコマンドのパイプラインの一部として [[sudo]] を使わない場合は、空っぽです。
 
 
== 関連項目 ==
 
== 関連項目 ==
 
{{sudo}}
 
{{sudo}}
 +
<!-- vim: filetype=mediawiki
 +
-->

2015年9月22日 (火) 22:15時点における最新版

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 を起動します。zshzsh から派生プロセスへの入出力がすべて記録されます。

$ 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 を使わない場合は、空っぽです。

関連項目