
sshd_config
グループ内のユーザーがこのサーバー ( ) にnologin
アクセスできないように構成されたファイルがあります。このグループには複数のユーザーがいますが、そのうちの 1 人のユーザー (ユーザー と呼びます) に対してこれを上書きしたいと考えています。ssh
DenyGroups nologin
greg
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 でこれを試してみました。確かに、評価順序は逆の順序 (最初にグループの許可/拒否、次にユーザーの許可/拒否) である必要があります。少なくとも私にとっては、その方がずっと理にかなっています。