银河麒麟系统中第三方应用后台静默磁盘扫描导致卡顿,需定位并终止进程、禁用用户级systemd服务、清除crontab及shell注入自启项,并用acl限制其文件系统访问权限。

银河麒麟系统中某些第三方应用(如云同步工具、安全扫描器、远程协助软件)会在后台静默启动磁盘扫描进程,反复读取全盘文件、触发大量I/O、拖慢响应甚至引发“Checking File System”假卡顿。这类行为不走systemd服务,也不在autostart目录注册,必须定位其真实进程路径并阻断其执行链路。
确认并终止正在运行的扫描进程
先揪出当前活跃的扫描主体:打开终端(Ctrl+Alt+T),执行 ps aux --forest | grep -E "(scan|check|fs|disk)",重点看CMD列含/tmp/xxx.sh、/dev/shm/或调用find / -type fdu -sh等命令的行。
若发现疑似进程(例如PID为1287,CMD为/opt/todesk/scan_disk.sh),立即执行:sudo kill -9 1287。
这一步只是临时止血——不清理启动源头,5分钟内它就会通过守护进程或定时任务复活。
禁用该应用的systemd用户级服务(若存在)
很多扫描行为由用户级systemd服务驱动,它们藏在~/.config/systemd/user/下,不会出现在全局systemctl list-unit-files中。
执行:systemctl --user list-unit-files --type=service | grep -i "关键词"(把“关键词”换成应用名,如todesk、sunlogin、anydesk)。
若返回类似todesk-disk-scan.service enabled,则立刻停用:systemctl --user stop 关键词-disk-scan.service && systemctl --user disable 关键词-disk-scan.service。
【必须加--user参数,否则操作的是root服务,对当前用户无效】
清除应用自启脚本与计划任务
方法一:检查用户级crontab
执行:crontab -l | grep -i "关键词"。
若输出含*/10 * * * * /opt/xxx/check_disk.sh,则编辑:crontab -e,删掉对应行,保存退出。
方法二:扫描可疑shell初始化注入
检查~/.bashrc、~/.profile、~/.bash_profile是否被追加了nohup /path/to/scan &类命令:grep -n -E "(nohup|&\s*\/|scan|check.*disk)" ~/.bashrc ~/.profile 2>/dev/null。
若发现匹配行(如第83行),用nano ~/.bashrc手动删除,然后执行source ~/.bashrc使改动立即生效。
冻结应用主程序的磁盘遍历能力(ACL级拦截)
这一步直接切断其读取文件系统的权限,比杀进程更彻底——即使它被其他进程拉起,也无法执行opendir("/home")或stat()系统调用。
第一步:确认该应用以哪个用户身份运行:ps -eo user,comm | grep 关键词 | awk '{print $1}' | head -n1(通常为当前用户名)。
第二步:禁止其访问所有挂载点根目录:sudo setfacl -m u:当前用户名:--x /。
这条命令移除该用户对/的读(r)和写(w)权限,仅保留进入(x)权限——这意味着它能cd /home,但无法ls /home或stat /etc/passwd,所有磁盘扫描逻辑将因Permission denied而中断。
第三步:验证效果:sudo -u 当前用户名 ls /home 2>&1 | grep "denied",若返回“Permission denied”,说明拦截已生效。











