fml4をWebUIで実行させる(パート1)

Linux

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で利用するラッパーシェルに問題が有るように思われる。
まだまだ調査が続く。