[sugj-tech:7809] Re: IDMAP関連 manpage について

TAKAHASHI Motonobu/高橋 基信 monyo @ monyo.com
2017年 7月 23日 (日) 22:48:13 JST


たかはしもとのぶです。

> manpages において IDMAP バックエンドがいくつか説明されています。
> そしてそれぞれに IDMAP オプションには何があるかの説明において、
> 共通的に以下の原文が登場します。
> 
> IDMAP OPTIONS
> 
> range = low - high
> 
> Defines the available matching UID and GID range for which the
> backend is authoritative. 
> 
> これを訳したものが、各 manpage において、てんでバラバラに存在します。
> 訳者が異なるから仕方ないところでしょうか...

仕方ないとはいえ、イケてないですね……。

> さてそこでこれらは当然、訳統一を図らなければなりませんが、原文が
> 何を意味しているか、ということで、まず上記の (a) 〜 (f) の訳はどれも不適切で、
> (f) が正解に近いと思っています。そして以下の私の解釈が正しいかを各位に確認します。
> 問題は authoritative の訳です。
> 
> 原文(再掲):
> Defines the available matching UID and GID range for which the
> backend is authoritative. 
> 
> 試訳:
> このバックエンドがマッピング権限を持っている場合に、
> 利用可能な UID と GID のマッチング範囲を定義する。 
> 
> 訳出のミソは、明確、明瞭な説明とするために
> if this backend has authoritative for the UID/GID mapping
> の意味を込めて
> 「この」という指示語を含めたこと、
> 「マッピング権限」として、何の権限かを明示したこと、
> そして「持っている場合に」と条件節のように表現したことです。
> 
> 技術観点から見てこの訳出は間違っていますか?

実際に設定を行うか、設定例をいくつかみればわかると思いますが、
多分技術的な理解が正しくありません。

例として、以下の idmap_rid(8)のEXAMPLESとかをみていただければと
思いますが、このサブパラメータは、例えば

-----
idmap	backend	=	tdb
idmap	uid	=	1000000-1999999
idmap	gid	=	1000000-1999999

idmap	config	MAIN	:backend=rid
idmap	config	MAIN	:range	=10000-49999

idmap	config	TRUSTED	:backend=rid
idmap	config	TRUSTED	:range	=50000-99999
idmap	config	TRUSTED	:base_rid=1000
-----

のような設定を行います。ここでは MAIN ドメインの rid バックエンドが
authoritative な範囲が 10000-49999 で、TRUSTED ドメインの rid バック
エンドが authoritative な範囲が 50000-99999 であることを range 
サブパラメータで指定しています。

また、指定方法が違いますが、デフォルトドメインの tdb バックエンドが
authoritative な範囲が 1000000-1999999 となっています。

available matching という言葉が入っているので紛らわしくなって
いますが、上記二語を省くとわかりやすくなると思います。

例えばですが、

-----
このバックエンドが権限をもっている(権威をもっている)UID 
および GID の範囲を定義する。
-----

といった訳になると思います。

available matching という言葉が入っている趣旨については、
例えば先の idmap_rid(8) の冒頭部分の説明をみていただければわかり
ますが、この範囲の中で、どのようなアルゴリズムで UID や GID の
割り当てを行うかはバックエンドごとに違っていますので、実際に
割り当てに成功するかどうかは、実はわかりません。

rid でいうと、一定の計算式で UID などを計算しますので、場合によっては
計算した結果が range で指定した範囲に収まらない場合もあり、この場合は
割り当てに失敗ということになります(ということが上記マニュアル
ページにも書いてあります)。

そのあたりのニュアンスが趣旨になると思います。
それも踏まえてですが、訳としては

-----
このバックエンドが割り当て権限をもっている(権威をもっている)UID 
および GID の範囲を定義する。
-----

位で十分ではないかと思いました。available を無理やり入れると

・割り当てを可能とする権限を

とかになると思いますが、くどいと思いますので省いています。

いずれにしても、このあたりについての適切な訳を探る上では、英文を
見るだけではなく、技術的な理解が不可欠だと思います。

技術的な理解も、先の substitution の件のように、ソースコードまで
みないとわからないようなものまで理解してくださいというつもりは
ないのですが、今回の件などは、Samba をある程度設定したことが
あればわかる範囲だと思いますので、できれば少しずつでよいので、
理解してほしいです。

ここの Web サイトなどをこのように読んで、技術的にこのような理解を
したのですが、正しいでしょうか?的なアプローチをしてもらえると
助かります。

-- 
TAKAHASHI Motonobu/高橋 基信 <monyo @ monyo.com>


sugj-tech メーリングリストの案内