perl-5.32上でfml4を動作させる。ついでにWebUIを設定する。で止まっていた、WebUIの対応です。
エラーの確認
WebUIでMLにメールアドレスを登録しようとすると、以下の様な画面が表示される。
MLにユーザを追加するため、以下の処理を行う。
①「MLメンバーの登録/削除」の下になる「メンバー登録」にチェックを入れる。
②「MLの選択」から、対象のMLを選択する。
③「GO」をクリックする。
CUIを基本としているたため、makefmlコマンドで操作されるファイルはfmlユーザのアクセス権が設定されている。
よって、MLで使用するメンバー一覧ファイルをnginxユーザで処理しようとすると以下の様にアクセスできないエラーが発生する。
nginxユーザにfmlに関するファイルのアクセス権が無いためである。
「ERROR: cannot open ‘/var/spool/ml/hogehoge/members’
拡張aclを設定するディレクトリやファイルの確認
通常のアクセス権では、fmlユーザとnginxユーザの2人に同時にアクセス権を設定できない。
chmodコマンドでotherのアクセス権を設定すれば利用可能となるが、誰でも操作できる状態になってしまう。
よって、拡張アクセス権でnginxユーザも所有者となるような設定する必要がある。この設定を行うのが拡張ACLである。拡張ACLについての説明は省略する。
以下のファイル対して拡張ACLを設定する。
/var/spool/ml ・・・・・・・・・・・・・・ fmlがMLのため使用するディレクトリ
/var/spool/ml/etc/aliases・・・・・・・・・fmlが使用するaliasesファイル
/var/spool/ml/hogehoge・・・・・・・・・ ml名ディレクトリ
/var/spool/ml/hogehoge/members・・・・ mlのメンバーファイル
拡張ACLを設定する
拡張aclを設定する例です。
・setfacl …… nginxユーザに読み書き権を付与する。
・getfacl …… 拡張aclの設定を表示する。
# ls -l /var/spool/ml 合計 8 drwxr-sr-x 5 fml fml 4096 4月 5 20:17 etc drwxr-sr-x 5 fml fml 4096 5月 25 19:39 hogehoge # # setfacl -m u:nginx:rwx /var/spool/ml/etc # setfacl -m u:nginx:rwx /var/spool/ml/hogehoge # # setfacl -m u:nginx:rw /var/spool/ml/etc/aliases # # ls -l /var/spool/ml/hogehoge/members -rw------- 1 fml fml 39 5月 25 19:39 /var/spool/ml/hogehoge/members # # setfacl -m u:nginx:rw /var/spool/ml/hogehoge/members # # getfacl /var/spool/ml/hogehoge/members getfacl: Removing leading '/' from absolute path names # file: var/spool/ml/hogehoge/members # owner: fml # group: fml user::rw- user:nginx:rw- group::--- mask::rw- other::--- #
ユーザ登録の再テスト
MLにユーザを追加するため、以下の処理を行う。
①「MLメンバーの登録/削除」の下になる「メンバー登録」にチェックを入れる。
②「MLの選択」から、対象のMLを選択する。
③「GO」をクリックする。
以下の画面が表示された。成功です。
ユーザを登録するため、以下の操作を行う。
①登録するメールアドレスを入力する。
②左下の「Submit」をクリックする。
makefmlのエラーが表示された。
「Unknown option: E」なるエラーが発生した。
GUIで利用するラッパーシェルに問題が有るように思われる。
まだまだ調査が続く。