Назад | Перейти на главную страницу

pam_unix генерирует много сеансов открытия / закрытия для пользователя моего домена

Я устанавливаю новый VPS с ubuntu 18.04, включая virtualmin / usermin. В auth.log я вижу много

su[12936]: Successful su for domain by root
su[12936]: + ??? root:domain 
systemd-logind[148]: New session c315 of user domain .
su[12936]: pam_unix(su:session): session opened for user domain by (uid=0)
su[12936]: pam_unix(su:session): session closed for user domain 

в системном журнале я вижу много

systemd[1]: Started Session c314 of user domain.
systemd[1]: Started Session c315 of user domain.

домен - это пользователь моего виртуального сервера, определенного в VPS. c314 / c315 увеличивалось каждый раз на 1 ... Раньше появлялось каждые 2-3 минуты, теперь каждые 5 минут.

Читая об этом в Интернете, все «решения» заключались в том, как удалить это ведение журнала из журнала, но ничего не объясняло, что это за сеансы открытия / закрытия в первую очередь.

Также при запуске loginctl list-sessions эти сеансы накапливаются в режимах «активный = да» и «состояние = закрытие» и никогда не исчезают из списка. На данный момент таких сеансов 95.

Что происходит на моем VPS, кто столько раз открывает / закрывает сессии и почему? Кроме того, почему эти сеансы никогда не исчезают из списка сеансов?

Спасибо

Обновить

loginctl session-status c315
c315 - domain (1000)
           Since: Sat 2020-02-08 20:27:08 UTC; 23h ago
          Leader: 12936
             TTY: ???
          Remote: user root
         Service: su; type tty; class user
           State: closing
            Unit: session-c315.scope

Unit user-1000.slice (/user.slice/user-1000.slice):
└─session-2691929.scope
├─19035 sshd: domain [priv]
├─19051 sshd: domain@pts/0
├─19052 -bash
├─20124 sudo systemd-cgls -u user-1000.slice
├─20125 systemd-cgls -u user-1000.slice
└─20126 pager

pam_unix сеансы завершаются нормально, как видно в журналах. Это увеличивающееся количество сеансов systemd-logind сеансы, которые по какой-то причине остаются открытыми, даже если они не содержат никаких процессов.

Обходной путь, который вы можете попробовать, - заставить systemd-logind чтобы убить все процессы сеанса, когда лидер сеанса выходит. Вы можете сделать это, изменив KillUserProcesses и KillOnlyUsers установка в /etc/systemd/logind.conf:

KillUserProcesses=yes
KillOnlyUsers=domain

и перезапуск systemd-logind:

systemctl restart systemd-logind

Однако это не отвечает на вопрос, почему сеансы не закрываются сами по себе, поскольку области сеанса пусты.

редактировать: О разнице между pam_unix и systemd-logind сеансы:

  • pam_unix сеансы состоят из небольшой записи, добавляемой или удаляемой из /var/run/utmp. Вы можете перечислить их с w или who,
  • systemd-logind сеансы более тяжелые, как объясняется в справочная страница pam_systemd. Свисающий systemd-logind потребляют гораздо больше ресурсов. Они перечислены с loginctl list-sessions

Поскольку ты идентифицировал возможного виновника (в комментарии к этому ответу) вы можете применить другой обходной путь: заменить

@include common-session

в /etc/pam.d/su с участием:

@include common-session-noninteractive

который не содержит pam_systemd. Когда вы изменяете PAM файлы, применяются обычные меры предосторожности: держите корень оболочка активна (например, sudo -i), пока вы не протестируете новую конфигурацию, на случай, если что-то сломается.