如何通过 Salt Stack 用 sed 替换 sudoers 文件中的注释行?
How to replace a commented line in sudoers file with sed via Salt Stack?
您好,我想更改我所有 Salt minions 的 /etc/sudoers 文件中的以下行。
# %wheel ALL=(ALL) NOPASSWD: ALL
具有以下内容:
%wheel ALL=(ALL) NOPASSWD: /usr/bin/salt*
到目前为止,我已经尝试了以下命令以及大量类似的命令,但略有不同 options/syntax:
sed -i '/# %wheel ALL=(ALL) NOPASSWD: ALL/c %wheel ALL=(ALL) NOPASSWD: /usr/bin/salt*' /etc/sudoers
我没有收到此特定命令的错误消息,但文件未更新。
谁能为我的特定用途提供正确的 option/syntax?
$ sed -i 's|# \(.*\)ALL|/usr/bin/salt*|' /etc/sudoers
使用以下 sed 表达式:
sed 's~^# *\(%wheel *ALL=(ALL) *.*\)ALL~/usr/bin/salt*~' /etc/sudoers
对于那些想知道如何通过 Salt(使用@CWLiu 的回答)针对所有 minions 运行 此命令的人,您必须添加以下内容:
salt -C 'G@roles:apiserver' cmd.run 'sed -i '"'"'s|# \(.*\)ALL|/usr/bin/salt*|'"'"' /etc/sudoers'
遵守 Salt Stack 的 cmd.run 语法
您好,我想更改我所有 Salt minions 的 /etc/sudoers 文件中的以下行。
# %wheel ALL=(ALL) NOPASSWD: ALL
具有以下内容:
%wheel ALL=(ALL) NOPASSWD: /usr/bin/salt*
到目前为止,我已经尝试了以下命令以及大量类似的命令,但略有不同 options/syntax:
sed -i '/# %wheel ALL=(ALL) NOPASSWD: ALL/c %wheel ALL=(ALL) NOPASSWD: /usr/bin/salt*' /etc/sudoers
我没有收到此特定命令的错误消息,但文件未更新。
谁能为我的特定用途提供正确的 option/syntax?
$ sed -i 's|# \(.*\)ALL|/usr/bin/salt*|' /etc/sudoers
使用以下 sed 表达式:
sed 's~^# *\(%wheel *ALL=(ALL) *.*\)ALL~/usr/bin/salt*~' /etc/sudoers
对于那些想知道如何通过 Salt(使用@CWLiu 的回答)针对所有 minions 运行 此命令的人,您必须添加以下内容:
salt -C 'G@roles:apiserver' cmd.run 'sed -i '"'"'s|# \(.*\)ALL|/usr/bin/salt*|'"'"' /etc/sudoers'
遵守 Salt Stack 的 cmd.run 语法