如何从 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位于组中FOOGROUPMatch也不会成功,并且username在登录时不会获得自定义 shell。

答案2

您需要在配置文件条目中使用多个子句,但要以非常具体的方式。某些设置中存在一个错误,导致通常推荐的最简单语法(“匹配组 FOOGROUP 用户!用户名”)导致组中的其他人无法匹配或让他们逃脱 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

谢谢。

相关内容