[netatalk-ja:0336] Re: Netatalk運用に関する質問
Oichinokata
oichinokata @ oichinote.com
2014年 1月 13日 (月) 22:45:13 JST
HATさんへ、
気になって、前者を外して試してみましたが、エラーになります。
Jan 13 22:37:03.034074 afpd[20828] {iniparser.c:545} (E:Default): iniparser: cannot open "/etc/afp.conf"
chmodについては、日を改めて、調査したいと思います。
今日は疲れました。
とりあえず、今できているパッチを、メールに添付して、本家MLに送っちゃっても構いませんかね?
chmodの必要がある事と、次の件も併せて。
>>>> 更にdaemon起動時にafp.confのownerとpermissionを調べて問題があったら
>>>> 即時終了する処理も...
>>
>> も、どこに組み込んでいいのか、さっぱりわかりません。
>
> become_root()の直前にstat()して、st_modeとst_uidをみて、ダメだったら
>
> LOG(log_error, logtype_afpd, "設定ファイルのアクセス権がダメダメです");
> return -1;
>
> かな。
>
> ただし、これにはどうにもならない問題があります。
> 設定ファイルのlog file =を読み込む前なので、デフォルトのログファイルに
> エラーが出力されると思います。
>
> これの実装は本家に相談ですかね。
お市
2014/01/13 22:18、HAT <hat @ fa2.so-net.ne.jp> のメール:
> HATです。
>
> Mon, 13 Jan 2014 21:07:45 +0900, Oichinokata <oichinokata @ oichinote.com>:
>> パッチ、できたかもしれません。Ubuntu 12.04でビルドしました。
>>
>> *** libatalk/util/netatalk_conf.c.org 2013-10-29 00:46:51.000000000 +0900
>> --- libatalk/util/netatalk_conf.c 2014-01-13 20:57:57.368870991 +0900
>> ***************
>> *** 1415,1421 ****
>> --- 1415,1423 ----
>> if (obj->iniconfig)
>> atalk_iniparser_freedict(obj->iniconfig);
>> LOG(log_debug, logtype_afpd, "load_volumes: loading: %s", obj->options.configfile);
>> + become_root();
>> obj->iniconfig = atalk_iniparser_load(obj->options.configfile);
>> + unbecome_root();
>>
>> EC_ZERO_LOG( readvolfile(obj, pwresult) );
>>
>> ***************
>> *** 1743,1749 ****
>> #endif
>> options->flags = OPTION_UUID | AFPObj->cmdlineflags;
>>
>> ! if ((config = atalk_iniparser_load(AFPObj->options.configfile)) == NULL)
>> return -1;
>> AFPObj->iniconfig = config;
>>
>> --- 1745,1754 ----
>> #endif
>> options->flags = OPTION_UUID | AFPObj->cmdlineflags;
>>
>> ! become_root();
>> ! config = atalk_iniparser_load(AFPObj->options.configfile);
>> ! unbecome_root();
>> ! if (config == NULL)
>> return -1;
>> AFPObj->iniconfig = config;
>>
>> このパッチを適用してビルドする事で、
>> afp.confが600でも、
>> 一般ユーザがAFPのボリュームにアクセスできます。
>
> 前者もやっぱり必要ですか。
>
>> インストーラ(Makefile)のどこを変更してよいのかわからないので、afp.confを600にする方法がわかりません。
>
> Makefileやconfigure等は自動生成されるファイルなので、これらのパッチを
> 書いてもダメなんです。
> ビルドやインストールに関する修正は、tarball版でなくgit版に対して作成する
> 必要があります。
> sourceforgeの方は最新になってないので、GitHubの方のbranch-netatalk-3-1に
> 対して修正しなければなりません。
>
> $ git clone https://github.com/Netatalk/Netatalk.git netatalk
> $ cd netatalk
> $ git checkout branch-netatalk-3-1
>
> この作業が面倒な場合は、
> https://github.com/Netatalk/Netatalk/tree/branch-netatalk-3-1
> このページの右の「Download ZIP」のボタンで
> Netatalk-branch-netatalk-3-1.zip
> をダウンロードする方法もあります。
>
> ビルド/インストールに関係するファイルは、
> configure.ac
> macros/*.m4
> 各ディレクトリのMakefile.am
> です。
>
> configure.acはたぶん今回は関係ないです。
> macros/*.m4はconfigure時に必要なライブラリ類を探し回るものなので、
> これまた関係ないです。
>
> 今回修正する必要があるのは、
> config/Makefile.am
> だと思います。
> このファイルでafp.conf.tmplからafp.confを生成し、make install時に
> 該当ディレクトリにコピーしています。
> このファイルのどこかにchmodを挿入すればよいと思います。
>
> chmodを使っている参考ファイルは、
> distrib/initscripts/Makefile.am
> だと思います。このファイルではinitscriptに実行属性を付けてますね。
>
> --
> HAT
netatalk-ja メーリングリストの案内