如何使用sed通过Salt Stack替换sudoers文件中的注释行?
问题描述:
嗨我想更改我的所有盐爪牙/ 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从这个特定的命令得到一个错误信息,但是文件没有被更新。
任何人都可以为我的特定用途提供正确的选项/语法吗?
答
$ sed -i 's|# \(.*\)ALL|\1/usr/bin/salt*|' /etc/sudoers
答
使用以下sed的表达:
sed 's~^# *\(%wheel *ALL=(ALL) *.*\)ALL~\1/usr/bin/salt*~' /etc/sudoers
答
对于那些想知道如何对所有的爪牙通过盐(使用@ CWLiu的答案),您必须添加以下运行此命令:
salt -C '[email protected]:apiserver' cmd.run 'sed -i '"'"'s|# \(.*\)ALL|\1/usr/bin/salt*|'"'"' /etc/sudoers'
遵守Salt Stack的cmd.run语法
感谢您的回复@RomanPerekhrest但是,这更新了我的sudoers文件中的所有条目,并带有#%轮 – jto
它也被注释掉了 – jto
@jto,请参阅我的更新 – RomanPerekhrest