-
-
Notifications
You must be signed in to change notification settings - Fork 3
ezmlm cron.1
ezmlm-cron - Sets up digest request messages generation via crond
ezmlm-cron [ -cCdDlL ][ -w dow ][ -t hh:mm ][ -i hrs ] listadr code[f]
ezmlm-cron is a very restrictive interface to crond(8). It edits the effective user's ~/crontab (see crontab(5)) file. It then executes crontab(1) to update crond(8) with the changes.
ezmlm-cron sets up the generation of trigger messages to the list listadr and the digest code code. A optional digest format specifier f can be added to code.
ezmlm-cron reads dir*/ezcronrc***, where dir is the home directory of the effective user. The first line of this file is the host name, 'host', to which bounces should be sent. Any bounces for lists set up by 'user' will go to 'user@host'. Subsequent lines are entries for users made up of: user:local:host:num:[list1[,list2...]]. The ':'-separated parameters are:
user
the user name to which this line corresponds.
local
the list address must start with exactly these characters (case
sensitive). If this field is empty, any list local address is allowed.
host
the list host name must exactly match this parameter (case insensitive).
If this field is empty, any list host address is allowed. (Host names
for the list and the digest list must still match.)
num
the user is permitted a maximum of num entries.
list1 [,list2...]
a set of complete list names separated by commas. The user may edit
entries for these lists, even if they do not match the criteria set
above. If these lists exist, they are counted in determining num. No
while space is allowed before or between list names. If no list names
are specified, the final ':' can be omitted.
The first line matching the executing user will be used.
If ezmlm-cron is installed SUID euser, the configuration and crontab files from that user's home directory will be used for all ezmlm-cron actions. This way, users on a system can be given limited crond(8) access via ezmlm-cron restricted by dir*/ezcronrc*** and to the generation of digest trigger messages. This is especially useful for users without shell access or access to crond(8). euser is usually 'ezmlm'. To install ezmlm-cron SUID ezmlm:
# chown ezmlm /usr/local/bin/ezmlm/ezmlm-cron
# chmod 4555 /usr/local/bin/ezmlm/ezmlm-cron
ezmlm-cron refuses to run if installed SUID root. ezmlm-cron when executed by 'root', will still use the files in ~root.
To allow crond(8) access, you may need to list the effective user (all users allowed access or ~ezmlm if ezmlm-cron is installed SUID ezmlm) in /etc/cron.allow. See crontab(1) for further information.
The -c, -d, and -l switches are mutually exclusive.
-c
List user entry from ezcronrc.
-C
(Default.) Do not list user entry.
-d
Delete entry. ezmlm-cron will search ~euser*/crontab*** for an
entry belonging to the executing user, permitted by
~euser*/ezcronrc*** and matching the command line arguments supplied.
code is ignored and may be omitted.
-D
(Default.) Do not delete entry.
-i hrs
Generate trigger message with hrs hours interval. Accepted intervals
are 0, 1 ,2, 3, 6, 12, 24, 48, and 72 hours. Other numbers will be
silently adjusted upwards to the nearest accepted interval (intervals
above 72 hours will result in weekly trigger messages).
-l
List entries. If no other command line arguments are given,
ezmlm-cron lists the entries created in the name of the user. If
listadr is given, ezmlm-cron will list the entries for all the
matching lists, even if the entries were not set up by the current user.
Arguments, if given, still have to comply with the rules set in
ezcronrc.
Crude crontab(5) lines are listed. These are taken from the ~/crontab file. Usually, these are active entries, although if the last execution of crontab(1) failed, they may not be.
-L
(Default.) Do not list entry.
-t hh:mm
The time for the trigger message. Other trigger messages will be sent
hrs hours before and after this time.
-w dow
The days of the week on which trigger messages are sent. day 0 and 7 are
Sunday, 1 is Monday, etc (see crontab(5)). The string specified for
dow must consists of single comma-separated digits in the range
'0'-'7' only. The default is every day, except for hrs of 48 (default
Monday, Wednesday, Friday), 72 (default Monday and Thursday), or greater
than 72 (default Monday). Both hrs and dow can be specified. In this
case, trigger messages are sent on the day specified by dow at the
interval specified by hrs. If hrs is greater than 24 h, it is
ignored and trigger messages are generated daily or as specified by
dow.
~euser/ezcronrc
The configuration file for ezmlm-cron. euser is the effective user
id. This is the executing user, unless ezmlm-cron is installed SUID
otheruser, in which case it is otheruser.
~euser/crontab
The file edited by ezmlm-cron. euser is the effective user.
~euser/crontabl
The lock file used to assure that only one process at a time is editing
the crond(8) settings. euser is the effective user.
ezmlm-cron should use the output of 'crontab -l' to list crontab lines, rather than parse the crontab file (and assume that the last execution of crontab(1) was successful).
crond(8) crontab(1) crontab(5) ezmlm(5), ezmlm-get(1),