Como atualizar o texto no arquivo dentro do script shell do Unix

3

Estou criando um script de shell que precisa atualizar o arquivo sudoers. Então, basicamente, eu quero ser capaz de acrescentar "/ usr / local / bin /" ao seguinte texto em / etc / sudoers:

secure_path = / sbin: / bin: / usr / sbin: / usr / bin

Eu preciso usar o sudo no comando para obter as permissões para modificar. Alguma ideia de como posso conseguir isso?

    
por VinnyD 18.04.2012 / 22:45

2 respostas

5

De muitas maneiras!

O antigo standby é sed: sed 's/\(secure_path.*\)/:\/usr\/local\/bin/' /etc/sudoers

Os scripts em vim também podem fazer coisas avançadas. Qualquer processo que você digita no vim pode ser salvo em um script vim e reproduzido.

A mais nova ferramenta que é realmente útil para isso é Augueas . É frequentemente usado com o Puppet, que é estruturado em torno da edição de arquivos de maneira estruturada. Assim, ele está ciente do contexto e das hierarquias dentro de um arquivo de texto.

    
por 18.04.2012 / 22:52
1

A melhor coisa a usar é: editor de fluxo sedoso para filtragem e transformação de texto

    
por 18.04.2012 / 22:48

Tags