답변:
Match
운영자는 매우 유연한 규칙을 허용, 복수의 인수를 취할 수 있습니다. 이 경우 원하는 것을 달성하기 위해 이와 같은 작업을 수행 할 수 있습니다.
Match Group FOOGROUP User !username
ForceCommand /bin/customshell
는 !
에 전달 된 인수 부정 User
사용자가 이렇게하더라도 기준을 username
그룹에 FOOGROUP
, (가) Match
성공하지 못할 것이며, username
로깅시 사용자 쉘을 제공하지 않습니다.
*,!username
더 깨끗한 접근법 인 것 같습니다 . 그러나 솔루션이 실패 할 또 다른 경우는 이런 종류의 혼합되어 Match
와 ChrootDirectory
(모두에서 OpenSSH 5.3p1 및 7.4p1에서 테스트를).
구성 파일 항목에 여러 절을 사용해야하지만 매우 구체적인 방식으로 사용해야합니다. 일부 설정에는 일반적으로 권장되는 가장 간단한 구문 ( "Match Group FOOGROUP User! username")으로 인해 그룹의 다른 모든 사람이 일치하지 못하거나 chroot 감옥에서 벗어날 수있는 버그가 있습니다.
OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d를 사용하는 Debian Jessie에서는 그룹의 다른 사람이 더 이상 연결할 수없는 결과를 얻었습니다. 다른 사람들은 탈옥을보고합니다. 두 경우 모두
Match Group FOOGROUP User *,!username
부작용없이 작동하는 것 같습니다. 파서의 일종의 버그는 의심의 여지가 없습니다.
아래 옵션을 사용하면 지정된 디렉토리 내에서 sftp 사용자를 탈옥하고 ssh를 통해 로그인 할 수있는 지정된 사용자를 감금 할 수 있습니다.
Match Group groupname User *,!username
감사.