In der SSHD-Konfiguration gibt es eine Match-Gruppe:
cat /etc/ssh/sshd_config
...
Match Group FOOGROUP
ForceCommand /bin/customshell
...
Auf der Maschine befinden sich viele Benutzer, die sich in der „FOOGROUP“ befinden.
Meine Frage:Wie kann ich einen bestimmten Benutzer, der sich in der „FOOGROUP“ befindet, aus der „Match Group“ ausschließen?
Antwort1
Der Match
Operator kann mehrere Argumente annehmen, was sehr flexible Regeln ermöglicht. In diesem Fall könnten Sie so etwas tun, um das gewünschte Ergebnis zu erzielen.
Match Group FOOGROUP User !username
ForceCommand /bin/customshell
Dies negiert das an das Kriterium !
übergebene Argument , so dass dies auch dann nicht erfolgreich ist, wenn der Benutzer in der Gruppe ist , und ihm beim Anmelden nicht die benutzerdefinierte Shell zugewiesen wird.User
username
FOOGROUP
Match
username
Antwort2
Sie müssen in Ihrem Konfigurationsdateieintrag mehrere Klauseln verwenden, aber auf eine ganz bestimmte Weise. In einigen Setups gibt es einen Fehler, der dazu führt, dass die allgemein empfohlene und einfachste Syntax ( „Match Group FOOGROUP User !username“ ) entweder dazu führt, dass alle anderen in der Gruppe nicht übereinstimmen oder aus ihrem Chroot-Jail entkommen.
Unter Debian Jessie mit OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d erhalte ich das Ergebnis, dass alle anderen in der Gruppe keine Verbindung mehr herstellen können. AndereJailbreaks melden. In beiden Fällen eine Syntax von
Match Group FOOGROUP User *,!username
scheint ohne Nebenwirkungen zu funktionieren. Zweifellos eine Art Fehler im Parser.
Antwort3
Mit der folgenden Option kann ich den SFTP-Benutzer im angegebenen Verzeichnis einsperren und dem angegebenen Benutzer auch die Anmeldung über SSH ermöglichen.
Match Group groupname User *,!username
Danke.