Augeas - Частичный контроль над sshd-config - Соответствие записей

В файле конфигурации /etc/ssh/sshd_config я хочу определить записи PasswordAuthentication для нескольких конкретных пользователей (или групп), например:

Match Group xyz_admin, xyz_support
  PasswordAuthentication no
Match User yvonne,yvette
  PasswordAuthentication yes

Я не хочу вмешиваться или иметь какой-либо контроль над похожими, но несвязанными записями, которые могут присутствовать или отсутствовать, например:

Match User xavier
    X11Forwarding yes
Match Group alice
    AllowTcpForwarding yes

Следующие выражения Augeas создают нужные мне записи, но могут повредить существующие записи конфигурации.

set /files/etc/ssh/sshd_config/Match[1]/Condition/Group "xyz_admin,xyz_support"
set /files/etc/ssh/sshd_config/Match[1]/Settings/PasswordAuthentication "no"
set /files/etc/ssh/sshd_config/Match[2]/Condition/User "yvonne,yvette"
set /files/etc/ssh/sshd_config/Match[2]/Settings/PasswordAuthentication "yes" 

Любая идея, как я могу сделать эти выражения более конкретными, чтобы они не связывались с любыми существующими и несвязанными записями «Match»?


person user835745    schedule 28.07.2016    source источник


Ответы (1)


Вы можете использовать подузлы Condition/*, чтобы отфильтровать узлы Match.

Например, вы можете увидеть, как это делается в поставщик puppet sshd_config (на Ruby). Обратите внимание, что все ключи в sshd_config нечувствительны к регистру, поэтому вам нужно использовать регулярные выражения, чтобы убедиться, что они совпадают независимо от их регистра.

person raphink    schedule 28.07.2016