長南洋一
cyoic****@maple*****
2012年 4月 18日 (水) 21:57:55 JST
長南です。 何だかすごくくどい説明になってしまいました。ご容赦。 元木さんのメールより [JM:00617] > > "If the standard input is not connected to the user's tty" の場合で、 > log_input を設定していない場合にも、"input is (also) captured" となるのか > どうかで状況が変わるように思います。 > > 私は、log_input を指定していない場合には、input は capture されないのが、 > log_input を指定すると、capture されて記録されるのだと理解しました。 はい、そうです。訳文で言うと、「これをセットすると、sudo はコマンドを 擬似 tty で実行し、ユーザの入力をすべてログに記録する」ですから。 > そのため、capture と store が逆説的になっているのに違和感を感じた理由 > だと思います。 > > capture されるのは常に行われて、log_input を指定した時の違いはログへの > 保存だけであれば、長南さんの訳がしっくり来るように思います。 いや、わたしが「が」という逆接で臭わせているのは、log_input を指定 していても、標準入力が tty に結びけられている場合と、いない場合では、 ログの保存される場所が違うということです。 試してみたのは、もっぱら log_output の方なので、log_output の場合で 説明します (sudoreplay は面白いので、ぜひ試してみてください。 sudo-1.7.4 以上で使えるはずです。もっとも一回で飽きるかもしれません)。 log_output をセットすると、出力は /var/log/sudo-io/00/00/AR といった ディレクトリにあるファイルに記録されます。標準出力や標準エラーがユーザの tty に結びつけられている普通の場合は、ttyout というファイルに記録されます。 tty に結びつけられていない場合は、おそらく stdout とか stderr という ファイルに出力されるのでしょう。 わたしは、sudoreplay を試してみて、標準出力が tty に結びつけられている 場合は、ttyout ファイルにログができることを知っていたので、 「separate log files (log_input では a separate log file)」という言葉を 強く意識したのだと思います。標準出力が tty に結びつけられていない場合、 ログが書き込まれるのは、ttyout ではない、別のファイルなんだよ、と。 その結果が、「が」というつなぎ方であり、「ログは独立した別のファイルに 書き込まれる」という、くどい訳し方です。 このパラグラフのわたしの案と元木さんの案を並べてみます。 まず、原文: If set, sudo will run the command in a pseudo tty and log all user input. If the standard input is not connected to the user's tty, due to I/O redirection or because the command is part of a pipeline, that input is also captured and stored in a separate log file. わたしの案: これをセットすると、sudo はコマンドを擬似 tty で実行し、ユーザの 入力をすべてログに記録する。入出力がリダイレクトされているとか、 コマンドがパイプラインの一部だとかいう理由で、標準入力がユーザの tty に 結びつけられていない場合でも、その入力はやはりキャプチャーされるが、 ログは独立した別のファイルに書き込まれる。 元木さんの案: これをセットすると、sudo はコマンドを擬似 tty で実行し、ユーザの 入力をすべてログに記録する。入出力がリダイレクトされているとか、 コマンドがパイプラインの一部だとかいう理由で、標準入力がユーザの tty に 結びつけられていない場合でも、その入力はキャプチャーされ、別のログ ファイルに書き込まれる。 わたしの訳はくどいし、元木さんの訳は、「別のログファイル」がイマイチ よくわからない。わたしの訳だって、「別ではないファイルについて書いてない じゃないか」と言われれば、そのとおりです。いっそのこと、くどいついでに、 ... 標準入力がユーザの tty に結びつけられていない場合は、その入力が キャプチャーされることは同様だが、ログが書き込まれるのは、標準入力が ユーザの tty に結びつけられている場合とは別のファイルである とでもしてしまいましょうか。ちょっと長すぎる気もしますけれど。 もう少し考えてみますが、結局今のままにするかもしれません。 こういうことは、読者としても、マニュアルを読んだだけでは、よくわからず、 実際に使ってみて、ああそうかと、納得することです。それで、今のままでも、 それほど問題がないのではないかと思うのです。 -- 長南洋一