как запретить systemd перемещать процесс в другие cgroups при выполнении команды su

Systemd предоставляет pam_systemd.so для модуля PAM и для многих команд, таких как su команда pam_systemd.so будет вызван, и процесс будет перемещен в контрольную группу, которой управляет systemd.

Как правило, если мы переместим процесс bash из связанного с ним сеанса cgroup создано systemd под /sys/fs/cgroup/systemd/user.slice в какую-то другую контрольную группу, то systemd переместит новый процесс bash в новую группу с именем session-cxxxx.scope под /sys/fs/cgroup/systemd/user.slice после выполнения su команда.

Мы хотели бы управлять контрольными группами для набора процессов, созданных нами, как запретить systemd выполнять такие процедуры, не отключая pam_systemd в модуле PAM.

Например

корневой путь контрольной группы по умолчанию /sys/fs/cgroup.

Когда вручную создается процесс bash с pid 12345 и идентификатором сеанса 99999, systemd создаст каталог session-99999.scope под /sys/fs/cgroup/systemd/user.slice/user-0.slice/ и поместите в него процесс 12345.

Для других контрольных групп, таких как cpu или memory, процесс 12345 будет помещен в каждый каталог user.slice в этих контрольных группах, ограниченных подсистемами.

Если мы переместим процесс с pid 12345 в другую cgroup из session-99999.scope, например:

Мы перемещаем это из /sys/fs/cgroup/systemd/user.slice/user-0.slice/session-99999.scope к /sys/fs/cgroup/systemd/.

Для группы cpu мы перемещаем его из формы /sys/fs/cgroup/cpu/user.slice к /sys/fs/cgroup/my_test_group.

Затем мы выполняем команду su xxx, создаем новый bash с pid 13333, затем

Systemd создаст новую группу сеансов с именем session-cxxxxx.scope, Например, session-c10010.scope под /sys/fs/cgroup/systemd/user.slice/user-0.slice/ и поместите в него новый процесс 13333.

Для группы cpu новый процесс 13333 будет помещен в user.slice вместо my_test_group.

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *