环境

操作系统:银河麒麟桌面操作系统V10 SP1(Kylin Linux Desktop V10 SP1)

内核版本:Linux node1 5.4.18-142-generic

问题

Kylin桌面操作系统中,新建以下目录,修改owneryz用户:

snippet.bash
$ sudo mkdir /sys/fs/cgroup/cpu/abc/
$ sudo chown yz:yz -R /sys/fs/cgroup/cpu/abc/

查看/sys/fs/cgroup/cpu/abc/目录属性:

snippet.bash
$ ll /sys/fs/cgroup/cpu/
dr-xr-xr-x  6 root   root     0 1025 10:00 ./
drwxr-xr-x 15 root   root   380 1025 10:00 ../
drwxr-xr-x  2 yz     yz       0 1025 10:04 abc/
...

然后执行以下命令:

snippet.bash
$ vncserver

之后,发现/sys/fs/cgroup/cpu/abc/目录的owner自动变成了root

snippet.bash
$ ll /sys/fs/cgroup/cpu/
dr-xr-xr-x  6 root   root     0 1025 10:00 ./
drwxr-xr-x 15 root   root   380 1025 10:00 ../
drwxr-xr-x  2 root   root     0 1025 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/
  1. 审计监控目录变更(假设系统已经安装并启用了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
  1. 执行vncserver命令:
$ vncserver :10
  1. 查询审计日志:
$ 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查看当前进程,存在相关进程:

snippet.bash
$ ps aux | grep kylin-process-
user        4092  0.0  0.1 635548 40192 ?        Sl   1024   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-daemonkylin-process-manager的一部分,属于Kylin的优化,可以删除。

kylin-process-manager即分级冻结,主要负责将应用进行分组分级管理,针对应用的分类和状态分别进行不同程度的系统资源限制。在系统高负载的情况下能够保证系统和当前用户正在操作的应用的流畅度,同时还能进一步降低系统功耗,提升系统续航时间。 此外,负责打开桌面应用,对外提供了应用打开的统一入口,在平板模式下实现了应用单实例功能。

详见:

https://gitee.com/openkylin/kylin-process-manager

解决方法

卸载kylin-process-manager-daemon

$ sudo apt remove kylin-process-manager-daemon