我试图在sshd_config中修改AllowGroups条目,但遇到了一个问题,在某些服务器上有allowuser。
示例行:

AllowGroups group1 group2 group3 !*

期望输出:
AllowGroups group1 group2 group3 newgroup !*

当前剧本:
- name: Add group to sshd_config
  hosts: '{{ target }}'
  handlers:
    - name: reload sshd
      service:
        name: sshd
        state: reloaded
  tasks:
    - name: Add Group to AllowGroups
      replace:
        dest: /etc/ssh/sshd_config
        regexp: '\!\*$'
        replace: 'newgroup !*'
        validate: 'sshd -t -f %s'
      notify: reload sshd

有没有办法可以调整一下,只捕获以“AllowGroups”开头的行?

最佳答案

这项任务应该为你做:

  - name: Add Group to AllowGroups
    replace:
      path: /tmp/sshd_config
      regexp: '^(AllowGroups.*)(\!\*)$'
      replace: '\1newgroup !*'

用括号将字符串拆分为“groups”,其中第一个组是以AllowGroups开头的所有内容,第二个组是“!*". 在replace部分中,保留第一个组(\1)并按所述修改第二个组。
用于测试的示例文件:
line 1
AllowGroups group1 group2 group3 !*
bbbbbbbbbbbb !*
last line text !* last line

希望有帮助。

08-27 13:22