opnsense-src/usr.sbin/cron/crontab/crontab.1
Eric van Gyzen fe590ffe40 Import vixie cron 4.0
Specifically, import the diff from commit e745bd4c10ab to
commit 83563783cc2 in https://github.com/vixie/cron.git

My sole motivation is changing to the common MIT license.
The old license, especially the "buildable source" clause,
is unfriendly for commercial users of this code.  Simply
changing the license without importing [most of] the code
accompanying that license seemed legally dubious.

The most regrettable change is losing Paul's uucp path.
I partially atone for this loss by restoring the upstream
$Id$ tags, since $FreeBSD$ is no longer useful.

This is [intended to be] a complete list of the functional
changes in this commit.  Some changes were made so that we
could consider vixie cron to be our upstream and reduce our
diffs against it, while others were simply a good idea.

- main() - use putenv instead of setenv for PATH
- open_pidfile no longer needs snprintf to build pidfile
- crontab main() - abort() on impossible errors
- check for truncation when building strings with snprintf
- getdtablesize() -> sysconf(_SC_OPEN_MAX)

These changes were not taken from upstream's 4.0 diff because
they [could] actually change behavior.  Some of them might be
beneficial, but should be taken separately.

- config.h - sendmail args: remove -oi and add -or0s
- call setlocale(LC_ALL, "") at the top of main()
- acquire_daemonlock - we already use pidfile
- cast getpid(), uid_t, and gid_t to long for printf
- remove unnecessary braces - I consider them beneficial
- BSDi support
- glue_strings() - use snprintf(), as we often already did

MFC after:	on demand
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D40260
2023-06-01 14:14:07 -05:00

153 lines
3.9 KiB
Groff

.\"/* Copyright 1988,1990,1993 by Paul Vixie
.\" * All rights reserved
.\" */
.\"
.\"Copyright (c) 1997 by Internet Software Consortium
.\"
.\"Permission to use, copy, modify, and distribute this software for any
.\"purpose with or without fee is hereby granted, provided that the above
.\"copyright notice and this permission notice appear in all copies.
.\"
.\"THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
.\"ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
.\"OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
.\"CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
.\"DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
.\"PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
.\"ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
.\"SOFTWARE.
.\"
.\" $Id: crontab.1,v 1.2 1998/08/14 00:32:37 vixie Exp $
.\"
.Dd December 20, 2016
.Dt CRONTAB 1
.Os
.Sh NAME
.Nm crontab
.Nd maintain crontab files for individual users (V3)
.Sh SYNOPSIS
.Nm
.Op Fl u Ar user
.Ar file
.Nm
.Op Fl u Ar user
{
.Fl l |
.Fl r Op Fl f
|
.Fl e
}
.Sh DESCRIPTION
The
.Nm
utility is the program used to install, deinstall or list the tables
used to drive the
.Xr cron 8
daemon in Vixie Cron.
Each user can have their own crontab, and though
these are files in
.Pa /var ,
they are not intended to be edited directly.
.Pp
If the
.Pa allow
file exists, then you must be listed therein in order to be allowed to use
this command.
If the
.Pa allow
file does not exist but the
.Pa deny
file does exist, then you must
.Em not
be listed in the
.Pa deny
file in order to use this command.
If neither of these files exists, then
depending on site-dependent configuration parameters, only the super user
will be allowed to use this command, or all users will be able to use this
command.
The format of these files is one username per line,
with no leading or trailing whitespace.
Lines of other formats will be ignored,
and so can be used for comments.
.Pp
The first form of this command is used to install a new crontab from some
named file or standard input if the pseudo-filename
.Sq Fl
is given.
.Pp
The following options are available:
.Bl -tag -width indent
.It Fl u
Specify the name of the user whose crontab is to be
tweaked.
If this option is not given,
.Nm
examines
.Dq your
crontab, i.e., the crontab of the person executing the
command.
Note that
.Xr su 1
can confuse
.Nm
and that if you are running inside of
.Xr su 1
you should always use the
.Fl u
option for safety's sake.
.It Fl l
Display the current crontab on standard output.
.It Fl r
Remove the current crontab.
By default the
.Fl r
option prompts for confirmation, adding the
.Fl f
option will attempt to remove the current crontab without confirmation.
.It Fl e
Edit the current crontab using the editor specified by
the
.Ev VISUAL
or
.Ev EDITOR
environment variables.
The specified editor
.Em must
edit the file in place;
any editor that unlinks the file and recreates it cannot be used.
After you exit
from the editor, the modified crontab will be installed automatically.
.El
.Sh FILES
.Bl -tag -width /var/cron/allow -compact
.It Pa /var/cron/allow
List of users allowed to use crontab
.It Pa /var/cron/deny
List of users prohibited from using crontab
.It Pa /var/cron/tabs
Directory for personal crontab files
.El
.Sh DIAGNOSTICS
A fairly informative usage message appears if you run it with a bad command
line.
.Sh SEE ALSO
.Xr crontab 5 ,
.Xr cron 8
.Sh STANDARDS
The
.Nm
command conforms to
.St -p1003.2
with the exception that the dangerous variant of calling
.Nm
without a file name in the first form of the command is not allowed by
this implementation.
The pseudo-filename
.Sq Fl
must be specified to read from standard input.
The new command syntax
differs from previous versions of Vixie Cron, as well as from the classic
SVR3 syntax.
.Sh AUTHORS
.An Paul Vixie Aq Mt paul@vix.com