# 环境 操作系统:`银河麒麟桌面操作系统V10 SP1(Kylin Linux Desktop V10 SP1)` 内核版本:`Linux node1 5.4.18-142-generic` # 问题 在`Kylin`桌面操作系统中,新建以下目录,修改`owner`为`yz`用户: ```bash $ sudo mkdir /sys/fs/cgroup/cpu/abc/ $ sudo chown yz:yz -R /sys/fs/cgroup/cpu/abc/ ``` 查看`/sys/fs/cgroup/cpu/abc/`目录属性: ```bash $ ll /sys/fs/cgroup/cpu/ dr-xr-xr-x 6 root root 0 10月 25 10:00 ./ drwxr-xr-x 15 root root 380 10月 25 10:00 ../ drwxr-xr-x 2 yz yz 0 10月 25 10:04 abc/ ... ``` 然后执行以下命令: ```bash $ vncserver ``` 之后,发现`/sys/fs/cgroup/cpu/abc/`目录的`owner`自动变成了`root`: ```bash $ ll /sys/fs/cgroup/cpu/ dr-xr-xr-x 6 root root 0 10月 25 10:00 ./ drwxr-xr-x 15 root root 380 10月 25 10:00 ../ drwxr-xr-x 2 root root 0 10月 25 10:04 abc/ ... ``` # 分析 我们需要知道是谁修改了`/sys/fs/cgroup/cpu/abc/`属性。 1. 将`/sys/fs/cgroup/cpu/abc/`目录的`owner`改回`yz`。 ``` $ sudo chown yz:yz -R /sys/fs/cgroup/cpu/abc/ ``` 2. 审计监控目录变更(假设系统已经安装并启用了audit): ``` $ sudo auditctl -w /sys/fs/cgroup/cpu/abc/ -p wa -k abc_monitor ``` 该命令监视`/sys/fs/cgroup/cpu/abc/`目录的写(w)和属性(a)变更情况。 可以使用以下命令查看已有审计规则: ``` $ sudo auditctl -l ``` 使用以下命令删除上述审计规则: ``` $ sudo auditctl -W /sys/fs/cgroup/cpu/abc/ -p wa -k abc_monitor ``` 3. 执行`vncserver`命令: ``` $ vncserver :10 ``` 4. 查询审计日志: ``` $ sudo ausearch -k abc_monitor ``` 看到以下记录: ``` time->Sat Oct 25 10:06:39 2025 type=PROCTITLE msg=audit(1761357999.494:1801): proctitle="/usr/bin/kylin-process-manager-daemon" type=PATH msg=audit(1761357999.494:1801): item=0 name="/sys/fs/cgroup/cpu,cpuacct/abc" inode=2528 dev=00:2a mode=040755 ouid=998 ogid=998 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0 type=CWD msg=audit(1761357999.494:1801): cwd="/" type=SYSCALL msg=audit(1761357999.494:1801): arch=c000003e syscall=92 success=yes exit=0 a0=813cf0 a1=0 a2=0 a3=12 items=1 ppid=1 pid=2291 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="kylin-process-m" exe="/usr/bin/kylin-process-manager-daemon" key="abc_monitor" ``` 可见,`kylin-process-manager-daemon`进程变更了`abc`目录的属性。 # 定位 `ps`查看当前进程,存在相关进程: ```bash $ ps aux | grep kylin-process- user 4092 0.0 0.1 635548 40192 ? Sl 10月24 0:00 /usr/bin/kylin-process-manager seabox 117074 0.0 0.1 635552 40336 pts/4 Sl 10:22 0:00 /usr/bin/kylin-process-manager root 117249 0.0 0.0 135068 11024 ? Ssl 10:22 0:00 /usr/bin/kylin-process-manager-daemon ``` 使用以下命令可以进一步确认存在`kylin-process-manager-daemon`服务: ``` $ systemctl list-units --type=service --all | grep "kylin-process-manager-daemon" ``` 经网搜,可以确认`kylin-process-manager-daemon`是`kylin-process-manager`的一部分,属于`Kylin`的优化,可以删除。 > kylin-process-manager即分级冻结,主要负责将应用进行分组分级管理,针对应用的分类和状态分别进行不同程度的系统资源限制。在系统高负载的情况下能够保证系统和当前用户正在操作的应用的流畅度,同时还能进一步降低系统功耗,提升系统续航时间。 此外,负责打开桌面应用,对外提供了应用打开的统一入口,在平板模式下实现了应用单实例功能。 详见: [https://gitee.com/openkylin/kylin-process-manager](https://gitee.com/openkylin/kylin-process-manager) # 解决方法 卸载`kylin-process-manager-daemon`: ``` $ sudo apt remove kylin-process-manager-daemon ```