我有2个可行的任务,我尝试在Ubuntu 14.04服务器上的CIS强化脚本中运行。为什么Ansible任务被跳过?
的首要任务是
- name: 8.1.12 Collect Use of Privileged Commands (Scored)
shell: /usr/bin/find {/usr/local/sbin,/usr/local/bin,/sbin,/bin,/usr/sbin,/usr/bin} -xdev \(-perm -4000 -o -perm -2000 \) -type f | awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>=500 -F auid!=4294967295 -k privileged" }'
register: privileged_programs
tags:
- scored
- section8.1.12
据说这是为了注册特权程序的列表中的下一个任务中使用。如果我将上面的命令复制到Ubuntu VM并运行它,我就会像我应该得到一长串程序。
第二个任务是这样的:
- name: 8.1.12 Collect Use of Privileged Commands (Scored)
lineinfile: dest=/etc/audit/audit.rules line="{{item}}" insertafter=EOF state=present
with_items: privileged_programs.stdout_lines
when: privileged_programs is defined and privileged_programs.stdout_lines|length > 0
notify: restart auditd
tags:
- scored
- section8.1.12
如果任何结果登记,但到目前为止,我还没有能够得到它的运行它应该解雇。每次尝试运行2个任务时都会跳过它。我假设privileged_programs变量未被正确存储或传递。
注:我想从外壳改变第一任务的命令,但后来我得到了一个错误“标准错误:在/ usr/bin中/找到:路径必须先表达”
注2:我也查在etc/audit/audit.rules并验证特权程序尚未包含在其中。
编辑:我在两个任务之间添加了一个调试,以输出var = privileged_programs。这里是我认为可能表明问题的一部分:
"stderr": "/usr/bin/find: `{/usr/local/sbin,/usr/local/bin,/sbin,/bin,/usr/sbin,/usr/bin}': No such file or directory",
"stdout": "",
"stdout_lines": [],
"warnings": []
任何人都知道这是为什么?
在此先感谢!
您可以在任务之间添加一个' - debug'并查看第一个任务运行并且'privileged_programs'有一些值吗? – helloV
我添加了一个摘录调试 – JaReg
检查我的答案 – helloV