SSHD의 "일치 그룹"에서 제외하는 방법은 무엇입니까?

SSHD의 "일치 그룹"에서 제외하는 방법은 무엇입니까?

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

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

"FOOGROUP"에 있는 컴퓨터에 많은 사용자가 있습니다.

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

답변1

연산자 Match는 여러 인수를 취할 수 있어 매우 유연한 규칙을 허용합니다. 이 경우 원하는 것을 달성하기 위해 이와 같은 작업을 수행할 수 있습니다.

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

는 기준 !에 전달된 인수를 무효화 User하므로 사용자가 username그룹에 있더라도 성공하지 못하며 FOOGROUP로그인 시 사용자 정의 셸이 제공되지 않습니다.Matchusername

답변2

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

OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d를 사용하는 Debian Jessie에서는 그룹의 다른 모든 사람이 더 이상 연결할 수 없다는 결과를 얻었습니다. 기타탈옥을 신고하세요. 두 경우 모두 다음 구문이 사용됩니다.

Match Group FOOGROUP User *,!username

부작용 없이 효과가 있는 것 같습니다. 파서에 일종의 버그가 있는 것은 의심할 여지가 없습니다.

답변3

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

Match Group groupname User *,!username

감사해요.

관련 정보