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

Zurück zum Archiv-Index

長南洋一 cyoic****@maple*****
2012年 4月 17日 (火) 20:36:26 JST


長南です。

全部チェックしてくださって、ありがとうございます。
「配布物の見直し」の方でもお忙しいところでしょうに。

元木さんのメールより [JM:00614]
>
>> DESCRIPTION
>> 1) 最初の二つの文の順番を逆にしてあります。
>>
>>     The sudoers policy module determines a user's sudo privileges.
>>     It is the default sudo policy plugin.
>>
>>     sudoers ポリシー・モジュールは、デフォルトの sudo 用ポリシー・
>>     プラグインであり、このモジュールによってユーザがどんな sudo
>>     権限を持っているかの判定が行われる。
>>
>>   まず、それが何であるかを言い、それから、その働きを述べた方が
>>   自然だと思ったのですが、どうだったか。原文どおりの順番なら、
>>
>>     sudoers ポリシー・モジュールは、ユーザがどんな sudo 権限を
>>     持っているかを決定する。このモジュールが sudo のデフォルトの
>>     ポリシー・プラグインである。
> 
> ポリシーモジュールは sudoers ファイルと LDAP があるのですね。
> 現状では sudoers ファイルが圧倒的に主流のポリシープラグインと思われるので、
> 文章としてはどちらも素直に読めました。もう少し選択肢が増えてきて、
> 認知度が上がってくると、これがデフォルトの・・・が先の方がよさそうですが、
> 現状ではどちらでもいいかなと思いました。

これは著者の説明がかなり混乱、というか不足しているのです。もともと
文章の上手な方ではありませんし (それでも、バージョンを上げるたびに
書き直して、だんだん形が整って来ているので、わたしとしては好意を
感じてしまうのですが)。

わたしも内部的なことがわかっているわけではないので、いい加減な
説明しかできませんが、sudo から「誰がどこで何をできるか」を判定
(決定) する部分を独立させて、プラグインにしたということだと思います。
それが、ポリシーモジュール、あるいはポリシープラグインで、具体的には、
デフォルトでは sudoers.so です (sudo.8 の「プラグイン」がご参考になると
思います)。

そして、その sudoers ポリシーモジュールのポリシーの設定に、/etc/sudoers
ファイルや LDAP が使えるということです (うーん、ややこしい)。

ですから、今までの sudoers の manpage とは、sudoers の意味が
変わっています。わたしとしては、まず最初にその辺を説明し、
「sudo はポリシーの実行 (遂行、運用、実装) にプラグイン方式を
採用した」といったことを書いておくべきだと思うのですが、著者はそれを
やっていないので、マニュアルの冒頭部分が、今までの読者にとって、
意味不明瞭になっているのです。

それでも、一応、「名前」セクションで説明している、と言えないことも
ありません。1.7 系では

  sudoers - list of which users may execute what

でしたが、1.8 系では

  sudoers - default sudo security policy module

ですから。それに、著者としては、sudo.8 の「説明」セクションで「sudo は
セキュリティ・ポリシーと入出力のロギングについて、プラグイン方式を
サポートしている ...」と説明したじゃないかと思っているのかもしれません。

わたしとしては、メージャー・バージョンが上がれば、この辺の文章が
整理されてくるのではないかと思っています。今のところは、書いてある
とおりに、言わば官僚的に訳しておけばよいのではないか、と。

>>   「(訳注: すなわちパスワード)」は、「普通はパスワード」の方がよいかも
>>   しれません。パスワード以外が要求される場合は、知りませんけれど。
> 
> パスワード以外のケースを私も知らないのですが、ほかにもあるかもしれませんので、
> 「普通は」とか「通常は」の方がいいかなと感じました。

「通常は」がよさそうですね。

>> 3)   As a special case, if sudo's -i option (initial login) is specified,
>>
>>     例外として、sudo に -i オプション (initial login) が 指定されている
>>     場合は、
>>
>>   As a special case を「例外として」と訳すのは、ちょっとボケているかも
>>   しれません。
> 
>  -i オプション自体がスイッチ先のユーザ権限のログインシェルを実行すると
> 意味なので、「特例として」といった感じでしょうか。

別案ありがとうございます。少し時間を置いてから、原文を読み直して、
どちらが文脈にしっくりするか考えてみます。

>> 6) Host_List の説明の最後の数行は、今回の増補部分。
>>
>>     Note sudo only inspects actual network interfaces; this means that IP
>>     address 127.0.0.1 (localhost) will never match.  Also, the host name
>>     "localhost" will only match if that is the actual host name, which is
>>     usually only the case for non-networked systems.
>>
>>     なお、sudo がチェックするのは、実在のネットワークインターフェース
>>     だけだということに留意してほしい。すなわち、IP アドレス 127.0.0.1
>>     (localhost) がマッチすることは、絶対にないのである。また、"localhost"
>>     というホスト名がマッチするのは、 それが実際のホスト名であるときだけ
>>     であり、それは通常、ネットワークにつながっていないシステムの場合に
>>     しか当てはまらない。
> 
> これは正しいと思います。
> 
> そのすぐ上にある、「完全修飾ドメイン名」ですが、個人的には 英語表記か
> FQDN の言葉が 1回でよいので、どこかにあるとうれしいと思いました。
> 私はもともとネットワーク屋ですが、FQDN とのかの方がピンと来て、
> 完全修飾ドメインは英語に頭の中で変換して理解できました。
> 個人的な話かもしれませんが。

よい案だと思います。どこに入れるか考えてみます。

>> 12) log_input と log_output は新規項目です。見直しでは訳文をすこし
>>   いじりましたが、意味的な変更はしていません。
> 
>  16
> .IX Item "log_input"
> .\"O If set, \fBsudo\fR will run the command in a \fIpseudo tty\fR and log all
> .\"O user input.
> .\"O If the standard input is not connected to the user's tty, due to
> .\"O I/O redirection or because the command is part of a pipeline, that
> .\"O input is also captured and stored in a separate log file.
> .\"O .Sp
> これをセットすると、\fBsudo\fR はコマンドを \fI擬似 tty\fR で実行し、
> ユーザの入力をすべてログに記録する。入出力がリダイレクトされているとか、
> コマンドがパイプラインの一部だとかいう理由で、標準入力がユーザの tty
> に結びつけられていない場合でも、その入力はやはりキャプチャーされるが、
> ログは独立した別のファイルに書き込まれる。
> 
> の最後の文ですが、「入力がキャプチャされて、ログに書き込まれる」のように、
> 順接でつながっていると思いますが、そこで「されるが」というのは
> 少し違和感がありました。
> 「・・・な場合でも、その入力はキャプチャされ、別のログファイルに
> 書き込まれる」のような感じはいかがでしょうか。
> 
> log_output の方も同様です。

逆接というのは、かなり心理的なところがあると思っています。
それも、日本語の場合は、「が」は接続詞ではなく、接続助詞ですから
(接続詞の「が」もありますが)、英語の but 以上に、微妙な心理を
表現する傾向があると思うのです。

たとえば、友人と食堂へ行って、注文をする場合、「彼はカツ丼で、僕は
天丼だ」とも、「彼はカツ丼だけど (だが)、僕は天丼だ」とも言えます。
前者はただの並列ですが、後者は注文が違うことを意識した表現なわけです。
英語なら、どちらも and でつなぐところでしょう。

問題の文章の場合、まず、"If the standard input is not connected
to the user's tty" と言っていますから、普通とは違うことが起きるの
だろうと思います。ところが、"also captured and" です。そこを読んだ
時点で、and 以下でも普通の場合と同じことが起きると書いてあるのだろうと、
予想します。ところが、「stored in a separate log file」と、普通とは
違ったことが起きるわけです。わたしとしては、そんなふうに (軽くですが)
予想を裏切るときには、「が」がふさわしいと思うのです。

もちろん、「・・・な場合でも、その入力はキャプチャされ、別のログ
ファイルに書き込まれる」も正しい訳です。このへんの文のつなぎ方は、
好みの分かれるところではないかと思います。読みくらべてみると、
わたしの訳文はすこしくどいので (also なんかをはっきり生かそうとする
癖がありますから)、リリースまでに考え直すかもしれませんが。

>> 14) tty_tichets は、見直しで、訳にすこし手を入れました。
>>
>>     If disabled, the time stamp of the directory is used instead.
>>
>>     それに対して、このフラグが無効な場合は、ユーザのディレクトリ
>>     そのもののタイムスタンプが使用されるのである。(旧)
>>
>>     それに対して、このフラグが無効な場合は、 ユーザのタイムスタンプ・
>>     ディレクトリのタイムスタンプが使用されるのである。(新)
>>
>>   やっぱり、「そのもの」を残した方がよいかもしれません。
> 
> 「そのもの」とか「自体」とかがあった方が、対比がわかりやすいと思いました。

やっぱり、どちらかを入れた方がよさそうですね。

>> 15)  use_pty は新規項目です。この pseudo-pty は pseudo-tty の
>>   タイポではないか、と思うのですが、どうでしょう。
> 
> おそらくタイポだと思います。
> pseudo-tty = pty だと思っているのですが、私の理解は合っていますか?

立花さんもおっしゃっていますし、タイポなんでしょうね。

>> 17) iolog_dir も新規項目ですが、The session sequence number, if any,
>>   の if any がよくわかりません。
> 
> 私も完全に理解した分けではないのですが、
> iolog_file のデフォルト値が %{seq} で、その場合にはセッション番号の
> ファイルがこのディレクトリ以下に作成されていくことを意味しているのかな、
> と思いました。

はい、そうです。/var/log/sudo-io/00/00/AR/{log,stderr,stdout,timing,ttyout}
などというファイルができます。0000AR がセッション番号。

> iolog_file が変更されていれば、状況は変わるのでそうかなと思ったのですが、
> 説明として、あまりしっくり来ていません。
> 他のみなさんはどうでしょうか。
> 
>>     The top-level directory to use when constructing the
>>     path name for the input/output log directory.  Only
>>     used if the log_input or log_output options are enabled
>>     or when the LOG_INPUT or LOG_OUTPUT tags are present
>>     for a command.  The session sequence number, if any, is
>>     stored in the directory.  The default is
>>     "/var/log/sudo-io".
>>
>>     このオプションの値をトップレベル・ディレクトリにして、
>>     入出力ログを格納するディレクトリのパス名を構成する。 こ
>>     の値が使用されるのは、log_input や log_output オプショ
>>     ンが有効になっているときや、 LOG_INPUT や LOG_OUTPUT タ
>>     グがコマンドに付いているときだけである。このディレクト
>>     リ以下に、 (セッション ID が連番ならば) セッションの連
>>     番が格納されることになるわけだ。 デフォルトは
>>     "/var/log/sudo-io" である。

素直に解釈すれば、「セッションの連番が存在すれば、セッションの連番が
このディレクトリに格納される」なんですか、「セッションの連番が存在
すれば」がちょっと変な気がするのです。それで、「セッション ID が
連番ならば」と、あえてずれた訳をしてみたわけです。まあ、あまり気に
しないでも、よいのかもしれません。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
Zurück zum Archiv-Index