Index: cronie-1.4.7/man/crontab.5 =================================================================== --- cronie-1.4.7.orig/man/crontab.5 +++ cronie-1.4.7/man/crontab.5 @@ -203,6 +203,9 @@ fields. Use the first three letters of day or month (case does not matter). Ranges or lists of names are not allowed. .PP +If the uid of the owner is 0 (root), he can put a "-" as first character of a crontab entry. +This will prevent cron from writing a syslog message about this command getting executed. +.PP The "sixth" field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or a "%" Index: cronie-1.4.7/src/entry.c =================================================================== --- cronie-1.4.7.orig/src/entry.c +++ cronie-1.4.7/src/entry.c @@ -105,13 +105,18 @@ entry *load_entry(FILE * file, void (*er if (ch == '-') { /* if we are editing system crontab or user uid is 0 (root) * we are allowed to disable logging + * Otherwise log the attempt, but still execute the command. */ if (pw == NULL || pw->pw_uid == 0) e->flags |= DONT_LOG; else { - log_it("CRON", getpid(), "ERROR", "Only privileged user can disable logging", 0); - ecode = e_option; - goto eof; + log_it("CRON", getpid(), "ERROR", + "Only privileged user can disable logging. " + "In future versions, user lines starting with a dash " + "will be treated as invalid and won't get executed.", 0); + /* throw an error when editing a crontab */ + if (error_func) + (*error_func) (ecodes[(int) e_minute]); } ch = get_char(file); if (ch == EOF) @@ -371,9 +376,9 @@ entry *load_entry(FILE * file, void (*er Debug(DPARS, ("load_entry()...returning successfully\n")) - /* success, fini, return pointer to the entry we just created... - */ - return (e); + /* success, fini, return pointer to the entry we just created... + */ + return (e); eof: if (e->envp)