[sugj-tech:7805] Re: レビュー依頼: smbdotconf/security/checkpasswordscript.xml

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


たかはしもとのぶです。

From: Michio Matsuyama <michio_matsuyama @ yahoo.co.jp>
Date: Sun, 23 Jul 2017 12:43:07 +0900 (JST)

> 各位へレビュー依頼します。
>
> 対象ファイル:
> {branches/4.4,trunk}/smbdotconf/security/checkpasswordscript.xml
>
> 最新コミット:
> https://osdn.net/projects/samba-jp/scm/svn/commits/2931

>
> チケット:
> https://osdn.net/ticket/browse.php?group_id=3828&tid=37397

以下の個所の翻訳以外は特に問題ないと思います。

=====
<para>In Samba AD, this script will be run <emphasis>AS ROOT</emphasis> by
<citerefentry><refentrytitle>samba</refentrytitle> <manvolnum>8</manvolnum>
</citerefentry>によって<emphasis>ROOT 権限で</emphasis>実行される。</para>
</citerefentry> without any substitutions.</para>

<para>Samba AD 中で <citerefentry><refentrytitle>samba</refentrytitle> <manvolnum>8</manvolnum></citerefentry> は、
ユーザー変更操作なしに <emphasis>ROOT 権限</emphasis> でこのスクリプトを実行する。
</para>
=====

上記について、2点コメントします。

○without any substitutions

上記ですが、Samba 変数の置換(substitution)が行われないという
ことだと思います。Samba の該当部分のソースコードも、AD 環境に
おける実装 (source4/dsdb/common/util.c) では、

=====
        password_script = lpcfg_check_password_script(lp_ctx, mem_ctx);
        if (password_script != NULL && *password_script != '\0') {
(変数定義なので中略)
                const char * const cmd[4] = {
                        "/bin/sh", "-c",
                        password_script,
                        NULL
                };
=====

のように当該パラメータの値が変数置換なしに実行すべきコマンドに
格納されていますが、非 AD 環境における実装 (source3/rpc_server/
samr/srv_samr_chgpasswd.c) では、

=====
        /* Use external script to check password complexity */
(省略)
        cmd = talloc_string_sub(tosctx, lp_check_password_script(tosctx),
        "%u", username);
=====

のように、%u の置換処理が talloc_string_sub() 関数によって行われます。

なお、Samba 変数については smb.conf(5) の VARIABLE SUBSTITUTIONS
などをみてください。ですので、チケットに記載されている、

> substitutions は "su" コマンドや "sudo" コマンドを使うなどして root ユーザー
> に明示的に切り替えて、の意味。

という解釈は技術的に正しくありません。

訳としては現状訳の「置換操作なしに」でも誤りではないと思いますが、
何の置換操作なし、かが分からず、結局意味がよく分からないとは
思いますので、補足するのであれば、

・Samba 変数の置換操作なしに

といったところだと思います。

○"In Samba AD"

先のコメントの中で記載した通り、ここでのこの表現は、非 AD 環境と
対比する趣旨で記載されている表現です。ですので、訳としては

・Samba AD 中で 

→

・Samba AD において
・Samba の AD 環境において

といったところだと思います。

よろしくお願いします。

---
TAKAHASHI Motonobu <monyo @ monyo.com> / @damemonyo
                   facebook.com/takahashi.motonobu


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