[JM:00619] Re: [POST:DP] sudo sudoers.5

Back to archive index

長南洋一 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 に結びつけられている場合とは別のファイルである

とでもしてしまいましょうか。ちょっと長すぎる気もしますけれど。

もう少し考えてみますが、結局今のままにするかもしれません。
こういうことは、読者としても、マニュアルを読んだだけでは、よくわからず、
実際に使ってみて、ああそうかと、納得することです。それで、今のままでも、
それほど問題がないのではないかと思うのです。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
Back to archive index