麒麟os需双路径拦截软件自动注册定时任务:立即禁用已存在的systemd timer和crontab条目,安装前冻结用户timer目录、占位系统timer文件、重定向启用路径,并锁定root crontab及禁用atd服务。

麒麟OS中某些软件安装后会悄悄向systemd timer、crontab或at队列注入计划任务,导致定时拉起进程、执行日志上传或后台扫描,即使主程序未运行也会持续消耗资源;必须从用户级与系统级双路径同步拦截,才能彻底阻止自动创建行为。
立即终止并禁用已注册的计划任务
刚完成软件安装后必须立刻检查,否则timer可能在几分钟内首次触发并重新注册自身。
执行命令列出所有活跃的用户级timer:systemctl --user list-timers --all。
若输出中包含可疑名称(如 wpsupdate.timer、todesk-check.timer、yyauto.timer),立即停止并禁用:systemctl --user stop 服务名.timer → systemctl --user disable 服务名.timer。
对系统级timer执行同样操作:sudo systemctl list-timers --all | grep -i "关键词",发现即执行 sudo systemctl stop 服务名.timer && sudo systemctl disable 服务名.timer。
【禁用后必须执行 systemctl --user daemon-reload(用户级)和 sudo systemctl daemon-reload(系统级),否则下次登录或重启仍会加载残留timer】。
拦截软件安装过程中的timer注册行为
适用于已知高风险软件(如WPS、向日葵、腾讯会议Linux版),在安装前主动阻断其调用 systemctl --user enable xxx.timer 的能力。
方法一:冻结用户级timer目录写入权限
执行:sudo chmod 555 ~/.config/systemd/user/timers.target.wants/。该目录是用户timer软链接默认存放位置,设为只读后,任何安装脚本尝试写入都会失败。
方法二:屏蔽systemd timer安装入口
创建空文件占位:sudo touch /usr/lib/systemd/user/目标.timer && sudo chmod 000 /usr/lib/systemd/user/目标.timer。当安装脚本调用 systemctl --user enable 目标.timer 时,因目标文件不可写而中止,但不影响主程序安装。
方法三:重定向timer安装目标路径(需提前准备)
执行:mkdir -p ~/.local/share/systemd/user && ln -sf /dev/null ~/.local/share/systemd/user/default.target.wants。此操作使所有 timer 启用请求最终指向空设备,无声失败。
清除crontab中被写入的非法定时任务
部分软件绕过systemd,直接向用户或root的crontab写入行,例如每5分钟curl一次上报接口。
第一步:检查当前用户的crontab
执行:crontab -l 2>/dev/null | grep -E "(关键词|http|curl|sh -c)"。若返回匹配行,说明已被注入。
第二步:安全清空非必要行
执行:crontab -l 2>/dev/null | grep -v -E "(关键词|http|curl|/tmp/|/dev/shm/)" | crontab -。该命令保留原crontab中不含风险特征的行,仅剔除可疑项。
第三步:锁定root crontab(仅限管理员确认无依赖时)
执行:sudo chattr +i /var/spool/cron/crontabs/root。此后任何进程(包括安装脚本)都无法修改root定时任务——【执行前请确认系统无依赖root cron的备份或监控任务】。
阻止at队列被滥用
少数软件使用 at 命令实现“延时启动”或“首次运行后10秒拉起守护进程”,这种行为极难被常规工具捕获,但可通过禁用at服务根除。
执行:sudo systemctl stop atd && sudo systemctl disable atd。
再彻底卸载at套件(可选):sudo apt purge at -y。
验证是否生效:atq 应输出 no at jobs present,且 which at 返回空。











