summaryrefslogtreecommitdiff
path: root/usr.sbin/cron
AgeCommit message (Collapse)Author
2018-07-13Unused variable.Kenneth R Westerback
ok deraadt@
2018-07-11retire the old cron socket path; ok jca millertTheo de Raadt
2018-06-13zap a stray ';' and make a comment less uglyTheo Buehler
2018-06-13avoid a double flag;Jason McIntyre
2018-06-13Add crontab entry option -n for "No mail when run successful"job
OK jmc@ millert@
2018-02-05Pass a FILE * instead of a file descriptor into load_user() andTodd C. Miller
perform the fclose() in process_crontab(). Previously we were closing the crontab fd twice--once in load_user() via fclose() and once in process_crontab(). OK tb@
2017-10-25Open a bunch of fds with O_CLOEXECJeremie Courreges-Anglas
Not needed in theory, but could prevent accidental leaks. ok millert@
2017-10-23Close the socket (and dfd) in at(1) child processesJeremie Courreges-Anglas
Fixes a failure at restart if a child process still has the socket opened. Spotted by millert@, ok friehm@ millert@
2017-10-23Close cron sockets in child processes.friehm
ok jca@
2017-06-08update permissions info to match recent changesTodd C. Miller
2017-06-08Add logging for when we find a non-file in the at spool that wasTodd C. Miller
a file when we scanned the at spool earlier.
2017-06-07In cron(8), require that crontab and at files in the spool be ownedTodd C. Miller
by group crontab. The at(1) command now creates files owned by group crontab, the crontab(1) command already does this. Files in the crontab spool with parse errors are now ignored; crontab(1) will not install a crontab file with parse errors. The system crontab file (/etc/crontab) is not affected by this. The required permissions on crontab files have been tightened. Files in the cron spool must be mode 0600 (as created by crontab(1)). The system crontab file may be readable/writable by the owner, readable by group and readable by other. The system crontab must be readable by the owner.
2017-06-07When running at jobs, open the at spool and use the directory fdTodd C. Miller
with openat(), fstatat() and unlinkat(). This is similar to how we run cron jobs and eliminates the need for run_job() to find the basename of the at file. OK deraadt@
2017-06-05Set the group on cron's Unix domain socket _before_ making itTodd C. Miller
group-writable, not after. Pointed out by Solar Designer.
2016-10-12Document the "-q " prefix accepted in the "command" field.Ingo Schwarze
Original patch from Wouter Clarie <wclarie at gmail com>, tweaked in joint work with jca@, OK millert@, OK jca@ on an earlier version.
2016-08-30Fix fd leak on error. OK jsg@Todd C. Miller
2016-01-11When caching the mtime of the spool directory and system crontab files,Todd C. Miller
stash a struct timespec, not just a time_t. Fixes a bug where cron could skip re-reading the spool after two consecutive changes.
2015-11-17Check pipe(2) return value; noticed by deraadt@Todd C. Miller
2015-11-17Check for setgid() failure before executing editor and warn ifTodd C. Miller
exec of shell + editor fails.
2015-11-15Clean up the remaining uses of stderr and perror() and use warn/errTodd C. Miller
and/or syslog depending on whether stderr is hooked up at the time. Also remove closelog() which is not needed since we are headed for exec. OK guenther@
2015-11-14Cleanup from unifdef: set sact.sa_flags to SA_RESTART instead ofTodd C. Miller
clearing it and then ORin in SA_RESTART.
2015-11-14Remove log_it() and call syslog(3) directly using the same format:Todd C. Miller
"(username) WHAT (details)". Logs due to normal operation (e.g. crontab operations or running commands) are logged at LOG_INFO like before. Actual errors are logged at LOG_ERR, less important things are logged at LOG_WARNING OR LOG_NOTICE. Also ignore SIGHUP now that there is no log file to reopen.
2015-11-12new location for cron sockets; ok millertJason McIntyre
2015-11-12Use absolute paths in pathnames.h. There is no longer a need toTodd C. Miller
chdir(2) to the cron dir and cron(8) now changes to / via daemon(3). We no longer try to create/chmod the spool directories as they should be set correctly at install time. The setegid(crontab) has been moved to open_socket() so it is closer to the chmod(2) call that needs it. OK deraadt@ tedu@
2015-11-12Remove SIGNALS section now that the non-syslog code has been removed.Todd C. Miller
2015-11-12Move cron socket to /var/run/cron.sock. Client code will try the oldTodd C. Miller
location if the new one doesn't exist for now. In order to allow the fchown() to succeed, cron now sets its effective gid to crontab. OK jca@ deraadt@
2015-11-11Use warn/warnx and err/errx. OK jca@Todd C. Miller
2015-11-11Niether cron nor crontab need flock permission.Todd C. Miller
2015-11-11Remove obsolete utime() call. It predates the use of a socket toTodd C. Miller
prod cron into checking the spool dir.
2015-11-11Fix spool dir mode check to avoid extraneous chmod() calls.Todd C. Miller
2015-11-11For "crontab -u user -e" change the euid for the mkstemp() callTodd C. Miller
instead of calling fchown() after the fact. Fixes a pledge() issue. OK semarie@
2015-11-11exit on pledge failure, oopsTheo de Raadt
2015-11-09Remove unused xpid argument to log_it().Todd C. Miller
2015-11-09Update CRONDIR comment to reality.Todd C. Miller
2015-11-09Rename AT_DIR -> AT_SPOOL and SPOOL_DIR -> CRON_SPOOL to improveTodd C. Miller
readability.
2015-11-09Use fstatat() when checking the files in the at queue so weTodd C. Miller
don't need to chdir to the queue dir. OK guenther@
2015-11-09queue(3) instead of homegrown queues and lists. This also fixesTodd C. Miller
some potential memory leaks in error paths. OK guenther@
2015-11-08Quiet silly clang analyzer warning in calloc() usage.Todd C. Miller
2015-11-06Use __progname instead of the homegrown ProgramName.Todd C. Miller
2015-11-04Change cron from including all headers in every file to only includingTodd C. Miller
what each .c file needs. I have not removed cron.h since it will be used in a future clean up of the cron's .h files. OK nicm@
2015-11-04Remove unused LogFD variableTodd C. Miller
2015-11-04Change some globals from extern to static when they are not usedTodd C. Miller
outside their respective .c files. Also remove some unused defines. OK jung@
2015-11-03If pledge(2) fails use perror instead of log_it(RealUser, ...) sinceTodd C. Miller
RealUser has not been filled in yet.
2015-11-03It is only necessary to swap the effective gid when reading a file.Todd C. Miller
Since we got rid of TMPDIR support there's no need to swap gids when creating or unlinking the temporary file. OK deraadt@
2015-11-03Use send(MSG_NOSIGNAL) instead of mucking with the disposition of SIGPIPEPhilip Guenther
ok millert@
2015-11-02Use setegid() directly instead of swap_gids() / swap_gids_back().Todd C. Miller
OK jca@ nicm@
2015-10-31Split client-only (at, crontab) functions out of misc.c and intoTodd C. Miller
client.c. Move truly common functions into common.c. This avoids dead code in the at and crontab commands.
2015-10-31open_socket() is only used by cron proper so move to cron.cTodd C. Miller
2015-10-31swap_gids and swap_gids_back are only used by crontab.c soTodd C. Miller
move them there.
2015-10-29Also need exec to run the editor of course.Todd C. Miller