Как исключить из «Группы соответствия» в SSHD?

Как исключить из «Группы соответствия» в SSHD?

В конфигурации SSHD есть группа Match:

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

На машине много пользователей, входящих в «FOOGROUP».

Мой вопрос:Как исключить определенного пользователя, входящего в «FOOGROUP», из «Match Group»?

решение1

Оператор Matchможет принимать несколько аргументов, что позволяет использовать очень гибкие правила. В этом случае вы можете сделать что-то вроде этого, чтобы добиться желаемого.

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

Отменяет !аргумент, переданный критерию User, поэтому даже если пользователь usernameвходит в группу FOOGROUP, попытка Matchне будет успешной и ему usernameне будет предоставлена ​​пользовательская оболочка при входе в систему.

решение2

Вам нужно использовать несколько предложений в записи файла конфигурации, но очень определенным образом. В некоторых настройках есть ошибка, из-за которой рекомендуемый и самый простой синтаксис ( "Match Group FOOGROUP User !username" ) либо приводит к тому, что все остальные в группе не могут выполнить Match, либо позволяет им избежать своей chroot-тюрьмы.

На Debian Jessie с использованием OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d я получаю результат, что все остальные в группе больше не могут подключиться. Другиесообщать о побегах из тюрьмы. В обоих случаях синтаксис

Match Group FOOGROUP User *,!username

Кажется, работает без побочных эффектов. Какой-то баг в парсере, без сомнения.

решение3

с помощью приведенной ниже опции я могу изолировать пользователя sftp в указанном каталоге, а также разрешить указанному пользователю входить в систему через ssh.

Match Group groupname User *,!username

Спасибо.

Связанный контент