如何從 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

謝謝。

相關內容