【发布时间】:2019-01-23 07:53:36
【问题描述】:
我正在使用 ansible expect 为我的 nessus 创建一个用户(通过使用 nessuscli)。期望应该回答如下几个问题(我添加了数字 1-5)。我希望卡在数字 5。数字 5 的最后一个字母是“(用户可以设置一个空的规则集)”,然后是下一行(回车)。这造成了问题,因为我不知道如何判断期望有一个短语后面跟着下一行。我尝试了 \r \n ,但都没有奏效!感谢任何治疗。
另外,你可以在下面看到我的 ansible 代码。
谢谢
您可以在此处查看 nessus cli propmt 的屏幕截图: screenshot of nessucli propmpt
============ Nessuscli adduser Prompt(s) ==========
1- 登录:
2- 登录密码:
3- 登录密码(再次):
4- 您希望该用户成为 Nessus 的“系统管理员”用户(可以上传插件等)吗? (y/n) [n]: 是
5- 用户规则
nessusd 有一个规则系统,允许您限制主机 该测试有权进行测试。例如,您可能想要 他只能扫描自己的主机。
有关规则语法,请参阅 Nessus 命令行参考
输入该用户的规则,完成后输入一个空白行: (用户可以有一个空的规则集)
================================================ ====
我的 Ansible 代码:
名称:创建 nessus 用户
expect:
command: /opt/nessus/sbin/nessuscli adduser
responses:
'Login: ': "{{nessus_username}}" # answer number 1
'Login password: ': "{{nessus_pass}}" # answer number 2
'Login password \(again\): ': "{{nessus_pass}}" # answer number 3
'\[n\]: ': 'y' # answer number 4
'set\)\\n ': "\n" # answer number 5 which doesnt work
'\[n\]: ': 'y' # answer the next propmpt (not in question and works)
【问题讨论】:
-
尝试在目标机器上安装
expect(必要时临时安装)。 Expect 包含一个名为autoexpect的实用程序。运行这个,然后运行nessuscli adduser命令完成。最后,输入exit。autoexpect现在将在您当前的工作目录中创建一个名为script.exp的期望脚本。您可以在此处查看每个步骤所需的模式。希望这将帮助您弄清楚您缺少什么。 -
我有点困惑。在
Nessuscli adduser Prompt(s)下,您将#4 作为Do you want this user to be a Nessus 'system administrator' user (can upload plugins, etc.)?,但您只有\[n\]:作为提示。对于#5,即User rules,你有set)。您的回答似乎与您的提示不符。
标签: python automation ansible pexpect