[netatalk-ja:0328] Re: Netatalk運用に関する質問
HAT
hat @ fa2.so-net.ne.jp
2014年 1月 13日 (月) 18:59:08 JST
Mon, 13 Jan 2014 17:14:26 +0900, Oichinokata <oichinokata @ oichinote.com>:
> 回答が返ってきましたが、"やりたいんだったら、パッチ作ってね!"
>
>> you could write a patch using become_root() and unbecome_root() in libatalk/util/netatalk_config.c
>
> でした。
>
> どうしよう...。
>
> libatalk/util/netatalk_conf.c(libatalk/util/netatalk_config.cは間違いと思われます)を見たところ、
> afp.confを読む部分は、次の2カ所でしょうか?
>
> 1418 obj->iniconfig = atalk_iniparser_load(obj->options.configfile);
この部分はnetatalk 2の頃のAppleVolumesファイルに相当します。
つまりボリューム設定を読み込みます。
クライアントから接続があって、ユーザ認証が通った後に実行されます。
ユーザが誰であるか判明した後でなければ、見せるべきボリュームが判明しない
からです。
> 1746 if ((config = atalk_iniparser_load(AFPObj->options.configfile)) == NULL)
この部分はnetatalk 2の頃のafpd.confに相当します。
つまりafpサーバとしての設定を読み込みます。
たしかafpd起動時にしか読み込まなかったような気がします。(自信なし)
> この前後を、become_root()とunbecome_root()でくくれば良いのかな?
1746が起動時だけだとしたら、、become_root()は必要ないかもしれないです。
> 1746のif文の方は、configに代入している所を、外に出さなければならないと思いますが。
if文まるごとでもいいようにみえます。
あと、make installのときにafp.confをchmod 600する処理が必要かも。
更にdaemon起動時にafp.confのownerとpermissionを調べて問題があったら
即時終了する処理も...
少なくとも現状はセキュリティーホールがあるように思えますね。
bin/misc/uuidtest.cにもatalk_iniparser_load()がありますが、
これはテスト用であって運用と無関係なので無視していかと。
--
HAT
netatalk-ja メーリングリストの案内