#systemd #pam #cgroups
Вопрос:
Systemd обеспечивает pam_systemd.so для модуля PAM и для многих команд, таких как su
command, pam_systemd.so будет вызван, и процесс будет перенесен в группу, которой управлял systemd.
Как правило, если мы переместим процесс bash из связанного сеанса cgroup
, созданного systemd
under /sys/fs/cgroup/systemd/user.slice
, в какую-либо другую группу, то systemd переместит новый процесс bash в новую группу с именем session-cxxxx.scope
under /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.
Для других рабочих групп, таких как процессор или память, процесс 12345 будет помещен в каталог eache user.slice в этих рабочих группах, ограниченных подсистемами
Если мы переместим процесс с pid 12345 в другую группу c из сеанса-99999.область, например:
Мы перемещаем его из /sys/fs/cgroup/systemd/user.slice/user-0.slice/session-99999.scope
в /sys/fs/cgroup/systemd/
.
Для группы ЦП мы перемещаем ее форму /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.
Для группы процессоров новый процесс 13333 будет помещен в user.slice вместо группы my_test_group.