sshd_config で DenyGroups を上書きする

sshd_config で DenyGroups を上書きする

sshd_configグループ内のユーザーがこのサーバー ( ) にnologinアクセスできないように構成されたファイルがあります。このグループには複数のユーザーがいますが、そのうちの 1 人のユーザー (ユーザー と呼びます) に対してこれを上書きしたいと考えています。sshDenyGroups nologingreg

AllowUsers gregファイルに追加しようとしましたsshd_configが、うまくいかないようです。これは可能ですか?

sshd_config は次のようになります。

   AllowTcpForwarding no
   ClientAliveCountMax 1
   ClientAliveInterval 300
   LoginGraceTime 1m
   PermitRootLogin no
   Protocol 2 
   RSAAuthentication no
   Subsystem       sftp    /usr/libexec/openssh/sftp-server
   UsePAM yes
   X11Forwarding yes
   DenyGroups nologin
   LogLevel INFO
   MaxAuthTries 4
   IgnoreRhosts yes
   HostBasedAuthentication no
   PermitEmptyPasswords no
   PermitUserEnvironment no
   Ciphers aes128-ctr,aes192-ctr,aes256-ctr

「AllowUsers greg」(greg はログイン グループのメンバー) を追加すると、greg は SSH を使用できなくなります。

答え1

のマニュアル ページでは、sshd_config(5)これらのオプションの動作について次のように説明しています。

指定されている場合、ログインは、プライマリ グループまたは補助グループ リストまたは名前がいずれかのパターンと一致するユーザー/グループに対してのみ許可/禁止されます。有効なのはグループ名のみで、数値のグループ ID は認識されません。デフォルトでは、すべてのグループでログインが許可されます。許可/拒否ディレクティブは次の順序で処理されます。拒否ユーザー許可ユーザー拒否グループ、 そして最後にグループを許可

これは、これらの2つのオプションのみを定義すると、すべきうまくいきます。おそらく、セットアップに干渉する他のオプションも使用しているでしょう。使用している設定全体を投稿してもらえますか?

答え2

私には簡単そうに思えます。グループgregから削除するだけですnologin

答え3

この方法ではそれはできません。全てディレクティブは、sshd最終決定を下す前に評価されます。したがって、gregは によって許可されますがAllowUsers、 が属するグループに一致する によって後で拒否されますDenyGroups。マニュアルでは、すべてのディレクティブが Jakuje によって説明されている順序で評価されるとは述べられていないため、この点についてはやや曖昧です。そこで、予備のシステムで OpenSSH 5.2p1 でこれを試してみました。確かに、評価順序は逆の順序 (最初にグループの許可/拒否、次にユーザーの許可/拒否) である必要があります。少なくとも私にとっては、その方がずっと理にかなっています。

関連情報