2017-08-18 42 views
0

嗨我想更改我的所有盐爪牙/ etc/sudoers文件中的以下行。如何使用sed通过Salt Stack替换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 

我不t从这个特定的命令得到一个错误信息,但是文件没有被更新。

任何人都可以为我的特定用途提供正确的选项/语法吗?

回答

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

使用以下sed的表达:

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

感谢您的回复@RomanPerekhrest但是,这更新了我的sudoers文件中的所有条目,并带有#%轮 – jto

+0

它也被注释掉了 – jto

+0

@jto,请参阅我的更新 – RomanPerekhrest

0

对于那些想知道如何对所有的爪牙通过盐(使用@ CWLiu的答案),您必须添加以下运行此命令:

salt -C '[email protected]:apiserver' cmd.run 'sed -i '"'"'s|# \(.*\)ALL|\1/usr/bin/salt*|'"'"' /etc/sudoers' 

遵守Salt Stack的cmd.run语法