[JM:00639] Re: [POST:DP] sudo sudo.8 (構造体のタグ名の訳し方)

Zurück zum Archiv-Index

長南洋一 cyoic****@maple*****
2012年 5月 6日 (日) 11:06:57 JST


長南です。

ものすごく長い前置きのメールです。肝腎の質問は件名のとおりで、
このメールの最後の 10 行ほどに書いてあります。まず、最後の部分を
ご覧になってください。

sudo の公式サイトをのぞいてみたら、開発版が 1.8.5rc3 まで進んで
いました(目下のところ、何故かダウンロードできないのですが)。
1.8.4 のマニュアルは、どのディストリビューションも採用しない、幻の
バージョンのマニュアルになりそうです。もっとも、1.8.3 のマニュアル
として、それなりに役に立つでしょうが。

手元に sudo-1.8.5b4.tar.gz があるので、1.8.4p4 のマニュアルと較べて
みました。一目見て気がつく相違は、sudoers.5 のセクション構成が変更・
整理されたことですが、これは実際にはパラグラフの位置を移動しただけです
(今まで SESURITY NOTES が二ヶ所あったのを一ヶ所にまとめたなど)。

重大な変更は一ヶ所だけです。sudo.8 の "PLUGINS" セクションで、今までは
Plugin 行に plugin_name と plugin_path しか指定できなかったのが、
1.8.5 では plugin に渡す plugin_options も指定できるようになったと
説明している部分です (sudoers.5 にもそれに対応する増補部分がありますが、
そちらは小手先の対処では足らず、1.8.5 を訳すよりないので、今は取り上げ
ません)。

  1.8.4:
    ... Any additional parameters after the path are ignored.

  1.8.5:
    ... Any additional parameters after the path are passed as arguments
    to the plugin's open function.

そこで、1.8.5 のマニュアルを訳すまでは、sudo.8 の「プラグイン」
セクションの訳注を増やすことで、お茶を濁そうと思っています
(それで当分は用が足りるのではないか)。具体的には、訳注をこんなふうに
変更します。

  [訳注]: sudo-1.8.3 までは、キーワードに Plugin と Path しか使用できな
          かった。

          sudo-1.8.4 以上では、上記書式にもあるように、Debug や Set で始
          まる行も有効である。「デバッグ・フラグ」や 「セキュリティに関す
          る注意点」セクションも参照していただきたい。

          また、sudo-1.8.5 以上では、path の後ろにパラメータを続けて書く
          ことで (複数個あるときは空白で区切る)、それをオプションとして
          プラグインに渡すことが可能になっている。たとえば、以下のように
          だ。

            Plugin sudoers_policy sudoers.so sudoers_file=/etc/sudoers
            sudoers_uid=0 sudoers_gid=0 sudoers_mode=0440

実は、ここまでは前置きです。今回うかがおうとしているのは、1.8.5 の
マニュアルにあった上記の実例を見て (sudoers.5 の "PLUGIN OPTIONS" に
書いてあった example です)、気がついてしまったことなのです。

Plugin 行の書式は (1.8.5 流に書くと)、

  Plugin plugin_name plugin_path plugin_options ...

ですが、上記の例では plugin_name を sudoers_policy と書いています。
ところが、1.8.4 でも 1.8.5 でも、sudo.8 の "PLUGINS" セクションにある
実例では、

  Plugin policy_plugin sudoers.so
  Plugin io_plugin sudoers.so

となっているのです。plugin_name は policy_plugin なのか、sudoers_policy
なのか? 実際に試してみました。結論を言うと、sudoers_policy が正しい。
policy_plugin ではエラーになります。

また、sudo-1.8.4p4/doc/sample.sudo.conf でもこうなっています。

  Plugin sudoers_policy sudoers.so
  Plugin sudoers_io sudoers.so


policy_plugin というのは、構造体のタグ名で、sudoers_policy は
構造体変数名なのです。

sudo.8 の "PLUGINS" セクションにある実例は、おそらく著者の勘違い
なのでしょう。あるいは、わざとぼかした書き方をしているのかもしれません。
わたしとしては、実例中の policy_plugin を sudoers_policy に
書き換えてしまおうと思っています。

やっと質問にたどりつけました。こういう原文があります。

  A Plugin line consists of the Plugin keyword, followed by the
  symbol_name and the path to the shared object containing the plugin.
  The symbol_name is the name of the struct policy_plugin or struct
  io_plugin in the plugin shared object.

policy_plugin や io_plugin が構造体のタグ名であるとき、"the name of
the struct policy_plugin" や "the name of the struct io_plugin" は
どう訳すべきなのでしょうか。現在は、「構造体 policy_plugin の名前」など
と訳していますが、「policy_plugin 構造体の名前」などの方がよいのではないか
と思っています。普通は、どういう言い方をするのでしょうか。

-- 
長南洋一




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