我试图在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
希望有帮助。