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の設定を表示する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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で利用するラッパーシェルに問題が有るように思われる。
まだまだ調査が続く。
対処法判明
パッチの修正内容が間違っていたため、本障害になった。
パッチの作り直して適用したら正常に動作した。
以下の情報を更新しなした。参照ください。
perl-5.32上でfml4を動作させる。ついでにWebUIを設定する。(再投稿)