SSHD에서 "일치 그룹"에서 제외하는 방법?


14

SSHD 구성에 일치 그룹이 있습니다.

cat /etc/ssh/sshd_config
...
    Match Group FOOGROUP
    ForceCommand /bin/customshell
...

"FOOGROUP"에있는 많은 사용자가 기계에 있습니다.

내 질문 : "일치 그룹"에서 "FOOGROUP"에있는 특정 사용자를 어떻게 제외시킬 수 있습니까?

답변:


15

Match운영자는 매우 유연한 규칙을 허용, 복수의 인수를 취할 수 있습니다. 이 경우 원하는 것을 달성하기 위해 이와 같은 작업을 수행 할 수 있습니다.

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

!에 전달 된 인수 부정 User사용자가 이렇게하더라도 기준을 username그룹에 FOOGROUP, (가) Match성공하지 못할 것이며, username로깅시 사용자 쉘을 제공하지 않습니다.


그리고 이것은 "! username"만 제외한다는 것을 100 % 확신합니까? 그리고 FOOGROUP에있을 수있는 다른 사용자는 손대지 않습니까?
evachristine

2
예. 게시하기 전에 테스트했으며 설명대로 작동합니다.
D_Bye

1
*,!username더 깨끗한 접근법 인 것 같습니다 . 그러나 솔루션이 실패 할 또 다른 경우는 이런 종류의 혼합되어 MatchChrootDirectory(모두에서 OpenSSH 5.3p1 및 7.4p1에서 테스트를).
Ouki

4

구성 파일 항목에 여러 절을 사용해야하지만 매우 구체적인 방식으로 사용해야합니다. 일부 설정에는 일반적으로 권장되는 가장 간단한 구문 ( "Match Group FOOGROUP User! username")으로 인해 그룹의 다른 모든 사람이 일치하지 못하거나 chroot 감옥에서 벗어날 수있는 버그가 있습니다.

OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d를 사용하는 Debian Jessie에서는 그룹의 다른 사람이 더 이상 연결할 수없는 결과를 얻었습니다. 다른 사람들은 탈옥을보고합니다. 두 경우 모두

Match Group FOOGROUP User *,!username

부작용없이 작동하는 것 같습니다. 파서의 일종의 버그는 의심의 여지가 없습니다.


0

아래 옵션을 사용하면 지정된 디렉토리 내에서 sftp 사용자를 탈옥하고 ssh를 통해 로그인 할 수있는 지정된 사용자를 감금 할 수 있습니다.

Match Group groupname User *,!username

감사.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.