SSHD の「一致グループ」から除外するにはどうすればいいですか?

SSHD の「一致グループ」から除外するにはどうすればいいですか?

SSHD 構成には Match グループがあります:

cat /etc/ssh/sshd_config
...
    Match Group FOOGROUP
    ForceCommand /bin/customshell
...

マシン上には「FOOGROUP」に属するユーザーが多数存在します。

私の質問:「FOOGROUP」内の特定のユーザーを「Match Group」から除外するにはどうすればよいですか?

答え1

演算子Matchは複数の引数を取ることができるため、非常に柔軟なルールが可能になります。この場合、次のようにして目的を達成できます。

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

は、基準!に渡された引数を否定するUserため、ユーザーがusernameグループ に属している場合でもFOOGROUP、 はMatch成功せず、usernameログイン時にカスタム シェルは提供されません。

答え2

構成ファイルのエントリでは複数の句を使用する必要がありますが、非常に特殊な方法で行う必要があります。一部の設定にはバグがあり、一般的に推奨される最も単純な構文 (「Match Group FOOGROUP User !username」) を使用すると、グループ内の他の全員が Match に失敗するか、chroot jail から脱出できるようになります。

Debian Jessie で OpenSSH_6.0p1 Debian-4、OpenSSL 1.0.2d を使用すると、グループ内の他の全員が接続できなくなるという結果になります。 その他脱獄を報告する。どちらの場合も、

Match Group FOOGROUP User *,!username

副作用なしで動作するようです。 間違いなくパーサーに何らかのバグがあるのでしょう。

答え3

以下のオプションを使用すると、指定されたディレクトリ内の sftp ユーザーを監禁し、指定されたユーザーが ssh 経由でログインできるようにすることができます。

Match Group groupname User *,!username

ありがとう。

関連情報