同時GUIログインを制限しますが、複数のSSHログインを許可する方法は何ですか?

同時GUIログインを制限しますが、複数のSSHログインを許可する方法は何ですか?

複数のアカウントを含むUbuntuデスクトップのGUIログイン数を制限したいと思います。

いつでも1つのアカウントだけがローカルGUIを使用してログインできる必要があります。 (別のアカウントにログインするには、最初に最初のアカウントからログアウトする必要があります。アカウントでコンピュータがロックされている場合は、同じアカウントでコンピュータのロックを解除して既存のセッションを続行できますが、もう一度ログインして別のセッションを作成することはできません。)

さらに、すべてのアカウントはSSH経由でログインできる必要があります。

* - maxsyslogins 1 「/etc/security/limits.conf」ファイルに追加してみました。

同時 GUI ログインはブロックされますが、SSH ログインも完全にブロックされます。

これを達成する方法はありますか?

答え1

session required pam_limits.so最も簡単な方法は注釈を付けることです/etc/pam.d/sshd

これは SSH ログイン中の制限を迂回します。指定したその他の制限も適用されません。

別の方法は、ディレクトリpam_exec.soに表示されるGUI設定でスクリプトを実行することです。etc/pam.dユーザーが現在GUIを使用していることを確認し、その結果に応じてログインを許可または拒否できます。limits他の制限がある場合は、すべての種類のログインに対する操作が許可されます。

こんな感じです。以下のコードと変更はテストされていません。

#!/bin/bash

if [ $(ls /tmp/.X11-unix/ | wc -l) -gt 0 ]; then
  exit 1
else
  exit 0
fi

GUI の pam 構成に次の行を追加します。 GNOMEの場合/etc/pam.d/gdm-password。他の人はよくわかりません。

auth [success=ok default=die] pam_exec.so /path/to/script

確認するここPAMに関する追加情報。

関連情報