Como excluir de um "grupo de correspondência" no SSHD?

13

Há um grupo de correspondência na configuração do SSHD:

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

Existem muitos usuários na máquina que estão no "FOOGROUP".

Minha pergunta: como posso excluir um determinado usuário que está no "FOOGROUP" do "Grupo de correspondências"?

evacristina
fonte

Respostas:

14

O Matchoperador pode aceitar vários argumentos, permitindo regras muito flexíveis. Nesse caso, você pode fazer algo assim para alcançar o que deseja.

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

O !nega o argumento passado para o Usercritério, por isso mesmo se o usuário usernameestá no grupo FOOGROUP, a Matchnão ser bem sucedido, e usernamenão será dado o shell personalizado após a autenticação.

D_Bye
fonte
E você tem 100% de certeza de que isso exclui apenas o "! Username"? E outros usuários que poderiam estar no FOOGROUP serão intocados?
precisa
2
Sim. Eu testei antes de postar e funciona como eu descrevo.
D_Bye
1
Parece que *,!usernameé uma abordagem mais limpa. No entanto, outro caso de sua solução falhar é misturar este tipo de Matchcom ChrootDirectory(testado em ambos openssh 5.3p1 e 7.4p1).
Ouki 28/11/19
4

Você precisa usar várias cláusulas na entrada do arquivo de configuração, mas de uma maneira muito específica. Há um erro em algumas configurações que causam a sintaxe geralmente recomendada e mais simples ("Usuário do Grupo de Correspondência FOOGROUP! Nome de usuário") para fazer com que todos os outros membros do grupo falhem na Correspondência ou permita que eles escapem da prisão de chroot.

No Debian Jessie usando o OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d, obtenho o resultado de que todos os outros membros do grupo não podem mais se conectar. Outros relatam quebras de prisão. Nos dois casos, uma sintaxe de

Match Group FOOGROUP User *,!username

parece funcionar sem efeitos colaterais. Algum tipo de bug no analisador, sem dúvida.

Nadreck
fonte
0

com a opção abaixo, posso prender o usuário sftp no diretório especificado e também o usuário especificado capaz de efetuar login através do ssh.

Match Group groupname User *,!username

Obrigado.

Logeshwaran Jeyakumar
fonte