¿Cómo excluir de un "Grupo de coincidencias" en SSHD?

¿Cómo excluir de un "Grupo de coincidencias" en SSHD?

Hay un grupo Match en la configuración SSHD:

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

Hay muchos usuarios en la máquina que están en el "FOOGROUP".

Mi pregunta:¿Cómo puedo excluir a un usuario determinado que está en el "FOOGROUP" del "Grupo de coincidencias"?

Respuesta1

El Matchoperador puede aceptar múltiples argumentos, lo que permite reglas muy flexibles. En este caso, podrías hacer algo como esto para lograr lo que deseas.

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

Niega el !argumento pasado al Usercriterio, por lo que incluso si el usuario usernameestá en el grupo FOOGROUP, Matchno tendrá éxito y usernameno se le dará el shell personalizado al iniciar sesión.

Respuesta2

Debe utilizar varias cláusulas en la entrada de su archivo de configuración, pero de una manera muy específica. Hay un error en algunas configuraciones que hace que la sintaxis generalmente recomendada y más simple ("Match Group FOOGROUP User !username") haga que todos los demás miembros del grupo no coincidan o les permita escapar de su cárcel chroot.

En Debian Jessie usando OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d obtengo el resultado de que todos los demás miembros del grupo ya no pueden conectarse. Otrosreportar fugas de prisión. En ambos casos una sintaxis de

Match Group FOOGROUP User *,!username

parece funcionar sin efectos secundarios. Sin duda, algún tipo de error en el analizador.

Respuesta3

Con la siguiente opción puedo encarcelar al usuario sftp dentro del directorio especificado y también al usuario especificado capaz de iniciar sesión a través de ssh.

Match Group groupname User *,!username

Gracias.

información relacionada