一键,使用root用户或者sudu运行命令,将为所有用户增加这个保护

find /home /root -maxdepth 2 -name ".*shrc" -type f -exec sh -c "grep -q 'crontab()' {} && echo {} || (echo >> {} && echo 'crontab(){' >> {} && echo '  [[ \$@ =~ -[iel]*r ]] && echo \"crontab remove command is disabled\" || command crontab \"\$@\"' >> {} && echo '}' >> {})" \;

可以重复执行,不会重复添加
其原理就是在.bashrc或者.zshrc等shell的rc文件添加了一个方法覆盖crontab命令

crontab(){
  [[ $@ =~ -[iel]*r ]] && echo "crontab remove command is disabled" || command crontab "$@"
}

你可能会好奇为什么我会写这个,因为手抖将crontab -e执行成了crontab -r将生产服务器当前用户的crontab给清空了
以前是使用重命名crontab命令并用一个sh代替他的办法,但这需求修改系统,或是写一个alias来将命令指向一个脚本,这样不优雅,于是尝试寻找更棒的方案,于是写出了这个