Другая сторона того, что @Deer Hunter сказал, и что я думаю, что Вы достигаете, является "вредоносным программным обеспечением, может установить себя и выполняться как столько подобного вредоносного Windows программ, добирается?". Ответ на это нет. Без прямых полномочий предоставления участия пользователя для установки и, затем, выполнение, этого не может произойти.
Touch / Var / Spool / Cron / Crontabs / $ username; CHMOD 0 / VAR / SPAL / CRON / CRONTABS / $ username
должен сделать трюк. Восстановление с CHMOD 600
и Touch
(необходимо изменить MiMe MiCe, чтобы сделать Cron (попытка) перезагрузить его).
По крайней мере, Debian и, вероятно, с виксом Cron в целом CHMOD 400 / VAR / SPOOL / CRON / CRONTABS / $ username
также делает трюк, потому что эта реализация настаивает на разрешениях быть ровно 600. Это длится только до тех пор, пока пользователь не выполнит команду Crontab
.
Если вы хотите надежный путь, я не думаю, что есть что-то лучше, чем временно перемещать их крепко из пути или изменять разрешения, и временно добавлять их в / etc / cron .deny
.
Как насчет чего-то вроде этого, чтобы отключить пользовательский crontab:
crontab -l -u [username] >/tmp/[username].cron.tmp
crontab -r -u [username]
и снова включить:
crontab -u [username] /tmp/[username].cron.tmp
Это имеет дополнительное преимущество, что вы можете запускать его от имени этого пользователя без необходимости root (просто уберите параметр -u).
Если вы используете Debian, это относится только к Debian AFAIK:
Вы можете сделать это, добавив точку к имени cronjob.
Поведение упоминается в официальной документации Debian:
https://www.debian.org/doc/debian-policy/#cron-job-file-names
A cron job file name must not include any period or plus characters (. or +) characters as this will cause cron to ignore the file. Underscores (_) should be used instead of. and + characters.
Я согласен, путь через systemctl — тот, который нужно выбрать. На малине команды пальцев ног будут
sudo systemctl stop cron.service
sudo systemctl start cron.service
Вы можете использовать следующее:
crondisable
cronenable
crondisable some_other_user
...
Код zsh
(, введенный в ваш.zshrc
):
ecerr () {
print -r -- "$@" >&2
}
crondisable() {
local user="${1:-$(whoami)}"
local cronpath="/tmp/$user.cron.tmp"
test -e "$cronpath" && {
ecerr "There is already a disabled crontab at $cronpath. Remove that manually if you want to proceed."
return 1
}
crontab -l -u $user > "$cronpath"
crontab -r -u $user
}
cronenable() {
local user="${1:-$(whoami)}"
local cronpath="/tmp/$user.cron.tmp"
test -e "$cronpath" || {
ecerr "No disabled cron at $cronpath"
return 1
}
crontab -u $user "$cronpath"
mv "$cronpath" "${cronpath}.bak"
}