DenyGroups in sshd_config überschreiben

DenyGroups in sshd_config überschreiben

Ich habe eine sshd_configDatei, die so konfiguriert ist, dass Benutzer in der Gruppe keinen Zugriff auf diesen Server haben nologin( ssh) DenyGroups nologin. Obwohl ich mehrere Benutzer in dieser Gruppe habe, möchte ich dies für einen der Benutzer (nennen wir den Benutzer greg) überschreiben.

Ich habe versucht, etwas AllowUsers gregzur sshd_configDatei hinzuzufügen, aber das hat anscheinend nicht funktioniert. Ist das möglich?

Die sshd_config sieht folgendermaßen aus:

   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

Das Hinzufügen von „AllowUsers greg“ (Greg ist Mitglied der Anmeldegruppe) erlaubt Greg nicht, SSH zu verwenden.

Antwort1

Die Manualpage sshd_config(5)beschreibt das Verhalten dieser Optionen wie folgt:

Wenn angegeben,Die Anmeldung ist nur für Benutzer/Gruppen erlaubt/untersagt, deren primäre Gruppe oder ergänzende Gruppenliste oder Name mit einem der Muster übereinstimmt.Nur Gruppennamen sind gültig; eine numerische Gruppen-ID wird nicht erkannt. Standardmäßig ist die Anmeldung für alle Gruppen zulässig. Die Anweisungen allow/deny werden in der folgenden Reihenfolge verarbeitet:Benutzer verweigern,Benutzer zulassen,DenyGroups, und schlussendlichGruppen zulassen.

Dies deutet darauf hin, dass, wenn Sie nur diese beiden Optionen definieren, essollenfür Sie funktionieren. Sie verwenden wahrscheinlich andere Optionen, die Ihr Setup beeinträchtigen. Können Sie die gesamte von Ihnen verwendete Konfiguration posten?

Antwort2

Für mich scheint das unkompliziert zu sein: Einfach gregaus der nologinGruppe entfernen.

Antwort3

Das geht so nicht, dennalleAnweisungen werden ausgewertet, bevor sshdeine endgültige Entscheidung getroffen wird. Obwohl also gregvon zugelassen wird AllowUsers, wird es später von abgelehnt, der DenyGroupsder Gruppe entspricht, in der er sich befindet. Das Handbuch ist hier etwas unspezifisch, da es nicht erwähnt, dass alle Anweisungen in der von Jakuje beschriebenen Reihenfolge ausgewertet werden, also habe ich dies in OpenSSH 5.2p1 auf einem Ersatzsystem ausprobiert. Tatsächlich sollte die Auswertungsreihenfolge umgekehrt sein (zuerst Gruppen zulassen/verweigern, dann Benutzer zulassen/verweigern). Das würde zumindest für mich viel mehr Sinn ergeben.

verwandte Informationen