web-dev-qa-db-ja.com

pam_unixは私のドメインユーザーに対して多くのオープン/クローズセッションを生成します

Virtualmin/userminを含む、ubuntu 18.04で新しいVPSをセットアップしました。 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 

syslogでは、私はたくさん見ます

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
2
Amos

pam_unixセッションは、ログに見られるように正常に終了します。これらの増加するセッション数はsystemd-logindセッションであり、何らかのプロセスが含まれていない場合でも、何らかの理由で開いたままになります。

セッションリーダーが終了するときに、systemd-logindにすべてのセッションプロセスを強制終了させることで、回避策を試すことができます。これは、/etc/systemd/logind.confKillUserProcessesおよびKillOnlyUsers設定を変更することで実行できます。

KillUserProcesses=yes
KillOnlyUsers=domain

systemd-logindを再起動します:

systemctl restart systemd-logind

ただし、これは、セッションのスコープが空であるため、セッションが自分で閉じない理由に答えません。

Editpam_unixsystemd-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ファイルを変更するときは、通常の予防措置が適用されます。新しい構成をテストするまで、rootシェルをアクティブにしてください(例:Sudo -i)。あなたは何かを壊します。

1