Import ezmlm-idx 0.40
[ezmlm] / ezmlm-cron.1
CommitLineData
f8beb284
MW
1.TH ezmlm-cron 1
2.SH NAME
3ezmlm-cron \- Sets up digest request messages generation via crond
4.SH SYNOPSIS
5.B ezmlm-cron
6[
7.B \-cCdDlL
8][
9.B \-w \fIdow
10][
11.B \-t \fIhh:mm
12][
13.B \-i \fIhrs
14]
15.I listadr code[f]
16.SH DESCRIPTION
17.B ezmlm-cron
18is a very restrictive interface to
19.BR crond(8) .
20It edits the effective user's ~/crontab (see crontab(5))
21file. It then executes
22.B crontab(1)
23to update crond(8) with the changes.
24
25.B ezmlm-cron
26sets up the generation of trigger messages to the list
27.I listadr
28and the digest code
29.IR code .
30A optional digest format specifier
31.I f
32can be added to
33.IR code .
34
35.B ezmlm-cron
36reads
37.IR dir\fB/ezcronrc ,
38where
39.I dir
40is the home directory of the effective user. The first line of this file is the
41host name, 'host', to which bounces should be sent. Any bounces for lists
42set up by 'user' will go to 'user@host'. Subsequent lines are entries
43for users made up of:
44.IR user:local:host:num:[list1[,list2...]] .
45The ':'-separated parameters are:
46.TP
47.I user
48the user name to which this line corresponds.
49.TP
50.I local
51the list address must start with exactly these characters (case sensitive).
52If this field is empty, any list local address is allowed.
53.TP
54.I host
55the list host name must exactly match this parameter (case insensitive).
56If this field is empty, any list host address is allowed. (Host names for
57the list and the digest list must still match.)
58.TP
59.I num
60the user is permitted a maximum of
61.I num
62entries.
63.TP
64.I list1 [,list2...]
65a set of complete list names separated by commas. The user may edit
66entries for these lists, even if they do not match the criteria set
67above. If these lists exist, they are counted in determining
68.IR num .
69No while space is allowed before or between list names. If no list names
70are specified, the final ':' can be omitted.
71
72The first line matching the executing user will be used.
73
74If
75.B ezmlm-cron
76is installed SUID
77.IR euser ,
78the configuration and crontab files from that user's home directory
79will be used for all
80.B ezmlm-cron
81actions. This way, users on a system can be given limited
82.B crond(8)
83access via
84.B ezmlm-cron
85restricted by
86.I dir\fB/ezcronrc
87and to the generation of digest trigger messages. This is especially
88useful for users without shell access or access to
89.BR crond(8) .
90.I euser
91is usually 'ezmlm'.
92To install
93.B ezmlm-cron
94SUID ezmlm:
95
96.EX
97 # chown ezmlm /usr/local/bin/ezmlm/ezmlm-cron
98 # chmod 4555 /usr/local/bin/ezmlm/ezmlm-cron
99.EE
100
101.B ezmlm-cron
102refuses to run if installed SUID root.
103.B ezmlm-cron
104when executed by 'root',
105will still use the files in ~root.
106
107To allow
108.B crond(8)
109access, you may need to list the effective user (all users allowed access
110or ~ezmlm if
111.B ezmlm-cron
112is installed SUID ezmlm) in
113.BR /etc/cron.allow .
114See
115.B crontab(1)
116for further information.
117.SH OPTIONS
118The
119.BR \-c ,
120.BR \-d ,
121and
122.B \-l
123switches are mutually exclusive.
124
125.TP
126.B \-c
127List user entry from
128.IR ezcronrc .
129.TP
130.B \-C
131(Default.)
132Do not list user entry.
133.TP
134.B \-d
135Delete entry.
136.B ezmlm-cron
137will search
138.I ~euser\fB/crontab
139for an entry belonging to the executing user, permitted by
140.I ~euser\fB/ezcronrc
141and matching the command line arguments supplied.
142.I code
143is ignored and may be omitted.
144.TP
145.B \-D
146(Default.)
147Do not delete entry.
148.TP
149.B \-i\fI hrs
150Generate trigger message with
151.I hrs
152hours interval. Accepted intervals are 0, 1 ,2, 3, 6, 12, 24, 48, and 72 hours.
153Other numbers will be silently adjusted upwards to the nearest accepted
154interval
155(intervals above 72 hours will result in weekly trigger messages).
156.TP
157.B \-l
158List entries. If no other command line arguments are given,
159.B ezmlm-cron
160lists the entries created in the name of the user. If
161.I listadr
162is given,
163.B ezmlm-cron
164will list the entries for all the matching lists, even if the entries
165were not set up by the current user. Arguments, if given, still have to
166comply with the rules set in
167.IR ezcronrc .
168
169Crude
170.B crontab(5)
171lines are listed. These are taken from the ~/crontab file. Usually,
172these are active entries, although if the last execution of
173.B crontab(1)
174failed, they may not be.
175.TP
176.B \-L
177(Default.)
178Do not list entry.
179.TP
180.B \-t\fI hh:mm
181The time for the trigger message. Other trigger messages will be sent
182.I hrs
183hours before and after this time.
184.TP
185.B \-w\fI dow
186The days of the week on which trigger messages are sent. day 0 and 7 are
187Sunday, 1 is Monday, etc (see crontab(5)). The string specified for
188.I dow
189must consists of single comma-separated digits in the range '0'-'7'
190only. The default is every day, except for
191.I hrs
192of 48 (default Monday, Wednesday, Friday), 72 (default Monday and Thursday),
193or greater than 72 (default Monday).
194Both
195.I hrs
196and
197.I dow
198can be specified. In this case, trigger messages are sent
199on the day specified by
200.I dow
201at the interval
202specified by
203.IR hrs .
204If
205.I hrs
206is greater than 24 h, it is ignored and
207trigger messages are generated daily or as specified by
208.IR dow .
209.SH FILES
210.TP
211.I ~euser/ezcronrc
212The configuration file for
213.BR ezmlm-cron .
214.I euser
215is the effective user id. This is the executing user, unless
216.B ezmlm-cron
217is installed SUID
218.IR otheruser ,
219in which case it is
220.IR otheruser .
221.TP
222.I ~euser/crontab
223The file edited by
224.BR ezmlm-cron .
225.I euser
226is the effective user.
227.TP
228.I ~euser/crontabl
229The lock file used to assure that only one process at a time is editing the
230.B crond(8)
231settings.
232.I euser
233is the effective user.
234.SH BUGS
235.B ezmlm-cron
236should use the output of 'crontab -l' to list crontab lines, rather than
237parse the crontab file (and assume that the last execution of
238.B crontab(1)
239was successful).
240.SH "SEE ALSO"
241crond(8),
242crontab(1),
243crontab(5),
244ezmlm(5),
245ezmlm-get(1)