如何从SSHD的“匹配组”中排除?


14

SSHD配置中有一个“匹配”组:

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

机器上的“ FOOGROUP”中有许多用户。

我的问题:如何从“匹配组”中排除“ FOOGROUP”中的给定用户?

Answers:


15

Match运营商可以采取多个参数,能够实现非常灵活的规则。在这种情况下,您可以执行以下操作来实现所需的功能。

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

!否定传递给参数User标准,因此即使用户username是该组中FOOGROUP,将Match不会成功,并且username将不给予在记录的定制外壳英寸


并且您100%确定这仅排除了“!username”吗?而其他可能位于FOOGROUP中的用户将不会受到影响?
evachristine

2
是。我在发布之前对其进行了测试,并且可以按照我的描述进行工作。
D_Bye

1
看来这*,!username是一种更干净的方法。然而,你的解决方案失败另一种情况是混合这种MatchChrootDirectory(两个的OpenSSH 5.3p1和7.4p1测试)。
Ouki

4

您需要在配置文件条目中使用多个子句,但要采用非常特定的方式。某些设置中存在一个错误,该错误会导致通常建议的最简单的语法(“匹配组FOOGROUP用户!username”)导致该组中的其他所有人均不匹配或使他们逃脱chroot监禁。

在使用OpenSSH_6.0p1 Debian-4,OpenSSL 1.0.2d的Debian Jessie上,我得到的结果是该组中的其他所有人都无法连接。 其他人则报告越狱。在这两种情况下,语法均为

Match Group FOOGROUP User *,!username

似乎没有副作用。毫无疑问,解析器中存在某种错误。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.