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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
=head1 ACL
=head2 auth
# Descriptions: FML::Credential checks address comparison
# History: always enabled
# Value: yes | no
# Examples: yes
use_address_compare_function = yes
# Descriptions: case insensitive comparison of user part of mail address.
# History: none
# Value: user_part_case_sensitive | user_part_case_insensitive
# Examples: user_part_case_insensitive
address_compare_function_type = user_part_case_insensitive
=head2 restrictinos
# Descriptions: restrictions for post
# History: fml 4.0's PERMIT_POST_FROM + REJECT_ADDR
# Value: list of attributes (
# permit_anyone
# permit_member_maps
# reject_system_special_accounts
# reject
# )
# Examples:
post_restrictions = reject_system_special_accounts
permit_member_maps
reject
# Descriptions: restrictions for command mail
# History: fml 4.0's PERMIT_COMMAND_FROM + REJECT_ADDR
# Value: list of attributes (
# permit_anyone
# permit_commands_for_stranger
# permit_member_maps
# reject_system_special_accounts
# reject
# )
# Examples:
command_restrictions = reject_system_special_accounts
permit_commands_for_stranger
permit_member_maps
reject
# Descriptions: restrictions for admin command mail
# History: fml 4.0's ?
# Value: list of attributes (
# permit_anyone
# permit_admin_member_maps
# check_admin_member_password
# reject_system_special_accounts
# reject
# )
# Examples:
# 1. if auth by members-admin only
# permit_admin_member_maps reject
# 2. password auth (members-admin + password)
# check_admin_member_password reject
#
admin_command_restrictions = reject_system_special_accounts
check_admin_member_password
reject
=head2 who can post
# Descriptions: member list == primary address list who can post.
# fml (CUI,GUI,command mail) modifies this map.
# XXX some map e.g. uni.group is read only
# History: fml 4.0's $MEMBER_LIST
# Value: filename
# Examples: /var/spool/ml/elena/members
primary_member_map = file:$ml_home_dir/members
# Descriptions: all maps used to check member list.
# History: fml 4.0's $MEMBER_LIST + @MEMBER_LIST
# Type:
# Examples:
member_maps = $primary_member_map
$admin_member_maps
=head2 recipients
# Descriptions: primary recipients list.
# fml (CUI,GUI,command mail) modifies this map.
# XXX some map e.g. uni.group is read only
# History: fml 4.0's $ACTIVE_LIST
# Value: filename
# Examples: /var/spool/ml/elena/recipients
primary_recipient_map = file:$ml_home_dir/recipients
# Descriptions: all maps used as recipient list.
# actives is added for backward compability.
# History: fml 4.0's $ACTIVE_LIST + @ACTIVE_LIST
# Value: a list of filenames
# Examples: file:$ml_home_dir/recipients
# unix.group:fml
recipient_maps = $primary_recipient_map
file:$ml_home_dir/actives
=head2 digest
# Descriptions: dummy
# History: none
# Value: filename
# Examples:
primary_digest_member_map = $primary_member_map
# Descriptions: dummy
# History: none
# Value: list of filenames
# Examples:
digest_member_maps = $primary_member_maps
# Descriptions: primary list of digest recipients.
# fml (CUI,GUI,command mail) modifies this map.
# History: In fml 4.0, options of $ACTIVE_LIST.
# Value: filename
# Examples: /var/spool/ml/elena/recipients-digest
primary_digest_recipient_map = file:$ml_home_dir/recipients-digest
# Descriptions: all maps of digest recipients.
# History: In fml 4.0, options of $ACTIVE_LIST.
# Value: a list of filenames
# Examples: file:$ml_home_dir/recipients-digest
# unix.group:fml
digest_recipient_maps = $primary_digest_recipient_map
=head2 remote administrators
# Descriptions: list of remote administrators who has priviledge
# of admin command mail.
# fml (CUI,GUI,command mail) modifies this map.
# XXX some map e.g. uni.group is read only
# History: fml 4.0's $ADMIN_MEMBER_LIST
# Value: filename
# Examples: /var/spool/ml/elena/members-admin
primary_admin_member_map = file:$ml_home_dir/members-admin
# Descriptions: all remote administrator lists
# History: fml 4.0's $ADMIN_MEMBER_LIST + @ADMIN_MEMBER_LIST
# Type:
# Examples:
admin_member_maps = $primary_admin_member_map
# Descriptions: dummy
# History: none
# Value: file
# Examples: /var/spool/ml/elena/recipients-admin
primary_admin_recipient_map = file:$ml_home_dir/recipients-admin
# Descriptions: dummy
# History: none
# Value: file
# Examples: /var/spool/ml/elena/recipients-admin
admin_recipient_maps = $primary_admin_recipient_map
# Descriptions: primary password file to authenticate remote administrator
# in password auth (detault).
# fml (CUI,GUI,command mail) modifies this map.
# History: 4.0's $PASSWD_FILE
# Value: file
# Examples: /var/spool/ml/elena/etc/passwd
primary_admin_member_password_map = file:$ml_home_dir/etc/passwd-admin
# Descriptions: all password files.
# For backward compatibility, etc/passwd is included.
# History: none
# Value:
# Examples:
admin_member_password_maps = $primary_admin_member_password_map
file:$ml_home_dir/etc/passwd
=head2 moderator
# Descriptions: primary list of moderators.
# fml (CUI,GUI,command mail) modifies this map.
# XXX some map e.g. uni.group is read only
# History: fml 4.0's $MODERATOR_MEMBER_LIST
# Value: filename
# Examples: /var/spool/ml/elena/members-moderator
primary_moderator_member_map = file:$ml_home_dir/members-moderator
# Descriptions: all list of moderator lists.
# History: $MODERATOR_MEMBER_LIST
# Value:
# Examples:
moderator_member_maps = $primary_moderator_member_map
# Descriptions: dummy
# History: none
# Value: file
# Examples: /var/spool/ml/elena/recipients-moderator
primary_moderator_recipient_map = file:$ml_home_dir/recipients-moderator
# Descriptions: dummy
# History: none
# Value: file
# Examples: /var/spool/ml/elena/recipients-moderator
moderator_recipient_maps = $primary_moderator_recipient_map
=head2 account based ACL
# Descriptions: list of system accounts.
# Such an account cannot identify the individual.
# Moreover, it may be a robot program et.al.
# It may cause mail loop.
# Hence it is safe to reject such a sender.
# History: fml 4.0's $REJECT_ADDR
# Value: a list of strings
# Examples: see below
system_special_accounts = root
postmaster
MAILER-DAEMON
msgs
nobody
news
majordomo
listserv
listproc
\S+\-help
\S+\-subscribe
\S+\-unsubscribe
# Descriptions: addresses fml uses: e.g. elena, elena-ctl
# libexec/error ignores these addresses.
# History: none
# Value: a list of strings
# Examples: (elena-ctl@fml.org elena-ctl@fml.org ...)
list_addresses = $address_for_post
$address_for_command
$maintainer
|