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)