可以用不同的用户执行shell脚本



我正在尝试使用ansible shell模块执行shell脚本,如下面的代码

-name : Execute
become_user: someuser
shell:
cmd: "./script.ksh"
chdir: "/path/to/script"

但是脚本仍然使用我的登录名而不是"someuser"如何解决这个问题?

由@β.εηοιτ可知。βε的become: yes缺失,参见Become指令中的示例和解释。

你觉得成为:yes不过是sudo ?

默认设置(至少在我的情况下)使用sudo。要查看正在使用的默认become_method,请检查您的"最接近"。

您可以在详细模式下运行剧本,并使用-vvv增加详细程度来查看正在使用的确切命令。

如果become: yesbecome_user: <username>没有帮助,尝试使用不同的become_method

susu -示例:

- name : Execute
shell:
cmd: "./script.ksh"
chdir: "/path/to/script"
become: yes
become_user: someuser
become_method: "su"

或:

- name : Execute
shell:
cmd: "su - someuser -c './script.ksh'"
chdir: "/path/to/script"
become: yes

在这种情况下,您很可能会收到以下警告:

[WARNING]:考虑使用'become', 'become_method'和'become_user'而不是运行su

相关内容

  • 没有找到相关文章

最新更新