如何通过Salt Stack使用sed替换sudoers文件中的注释行?

时间:2017-08-18 09:40:52

标签: sed comments salt sudoers

您好我想更改所有Salt minions上/ etc / sudoers文件中的以下行。

# %wheel        ALL=(ALL)       NOPASSWD: ALL

以下内容:

%wheel          ALL=(ALL)       NOPASSWD: /usr/bin/salt*

到目前为止,我尝试了以下命令以及大量类似命令,选项/语法稍有不同:

sed -i '/# %wheel        ALL=(ALL)       NOPASSWD: ALL/c %wheel          ALL=(ALL)       NOPASSWD: /usr/bin/salt*' /etc/sudoers

我没有从此特定命令收到错误消息,但文件未更新。

有人可以为我提供正确的选项/语法吗?

3 个答案:

答案 0 :(得分:1)

$ sed -i 's|# \(.*\)ALL|\1/usr/bin/salt*|' /etc/sudoers

答案 1 :(得分:0)

使用以下 sed 表达式:

sed 's~^# *\(%wheel *ALL=(ALL) *.*\)ALL~\1/usr/bin/salt*~' /etc/sudoers

答案 2 :(得分:0)

对于那些想知道如何通过Salt对所有minions运行此命令的人(使用@ CWLiu的答案),你必须添加以下内容:

salt -C 'G@roles:apiserver' cmd.run 'sed -i '"'"'s|# \(.*\)ALL|\1/usr/bin/salt*|'"'"' /etc/sudoers'

遵守Salt Stack的cmd.run语法