systemd 控制组层次结构下的用户会话,为什么需要它?

systemd 控制组层次结构下的用户会话,为什么需要它?

当用户使用 systemd 登录服务器时,PAM 逻辑会执行 pam_systemd。

使用该模块,用户将在 systemd 控制组下注册。这是两个用户(root 和普通用户)登录服务器的示例:

# systemd-cgls
Control group /:
-.slice
├─user.slice
│ ├─user-0.slice
│ │ ├─session-5233.scope
│ │ │ ├─13309 sshd: root@pts/0
│ │ │ ├─13367 -bash
│ │ │ ├─13447 systemd-cgls
│ │ │ └─13448 pager
│ │ └─[email protected]
│ │   └─init.scope
│ │     ├─13312 /lib/systemd/systemd --user
│ │     └─13313 (sd-pam)
│ └─user-1000.slice
│   ├─session-5236.scope
│   │ ├─13385 sshd: user1 [priv]
│   │ ├─13443 sshd: user1@pts/1
│   │ └─13444 -bash
│   └─[email protected]
│     └─init.scope
│       ├─13388 /lib/systemd/systemd --user
│       └─13389 (sd-pam)

但是这种行为在 Debian 8(已经使用 systemd)中是可选的,而在 Debian 9 中,您可以选择禁用pam-auth-update,如果您这样做,一切似乎都同样有效。

为什么需要对 cgroups 下的用户进行分组?禁用该分组时会发生什么?

答案1

其实这并不是必需的,但它允许管理员通过 cgroup 设置每个用户的限制。例如,可以限制内存和 CPU 使用率。

如果禁用 cgroup 隔离,您将无法设置此类限制。

相关内容