Como apagar uma linha de um arquivo que requer permissão como visudo usando sed?

0

Eu quero adicionar este comando timestamp=20 no final do arquivo visudo , o que aumentará o tempo de sudo por 20 min. Dessa forma, poderei usar meu script bash para instalar vários aplicativos. Depois que eu terminar, quero excluir o mesmo comando do arquivo visudo .

Minha pergunta pode parecer trivial, mas como visudo precisa de permissão para editar, então não sei como usar para sed em um arquivo que precisa de permissão

Aqui está o que eu vim com:

echo -e "add the timestamp" | sudo tee -a /etc/sudoers #This will add the timestamp command
sed '31,35' /etc/sudoers #This will remove the timestamp command

O primeiro comando funciona perfeitamente. No entanto, a execução do segundo comando mostra esse erro:

sed: -e expression #1, char 5: missing command

Alguma sugestão ou modificação que eu possa usar ??

    
por Suhaib 12.02.2014 / 20:58

1 resposta

0

Ok, resolvi esse problema. Eu adicionei a opção -i e d letra após o número 35. Os números 31 e 35 significam que o sed irá apagar tudo entre a linha número 31 e a linha número 35.

Eu também adicionei o comando sudo para que eu possa usar sed em arquivos que precisam de permissão ...

Aqui está o comando final:

sudo sed '31,35d' -i /etc/sudoers

    
por 13.02.2014 / 21:22