2017-08-18 82 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語法