2017-08-18 7 views
0

Bonjour Je voudrais changer la ligne suivante dans le fichier/etc/sudoers sur tous mes serviteurs de sel.Comment remplacer une ligne commentée dans le fichier sudoers par sed via Salt Stack?

# %wheel  ALL=(ALL)  NOPASSWD: ALL 

avec ce qui suit:

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

Jusqu'à présent, je l'ai essayé la commande suivante avec une pléthore de commandes similaires avec des options légèrement différentes/syntaxe:

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

Je ne t obtenir un message d'erreur de cette commande particulière, mais le fichier n'est pas mis à jour.

Quelqu'un pourrait-il me fournir la bonne option/syntaxe pour mon usage spécifique?

Répondre

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

Utilisez les commandes suivantes sed expression:

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

Merci pour la réponse @RomanPerekhrest cependant cela mis à jour toutes les entrées dans mon fichier sudoers aveC#% wheel – jto

+0

Il est également resté à – jto

+0

@jto, voir ma mise à jour – RomanPerekhrest

0

Pour ceux qui se demandent comment exécuter cette commande contre tous les sbires via sel (en utilisant @ réponse de CWLiu), vous devez ajouter ce qui suit:

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

Pour se conformer à la syntaxe cmd.run de Salt Stack