De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 25 de Outubro de 2002
Recentemente precisei zerar o campo da senha do usuário root no arquivo /etc/shadow.
A linha que eu precisava mudar tem o seguinte formato:
root:$1$GpYaenSE$8mXEvGgDvJ.0KNk2uhlRr0:11901:0:99999:7:::
Os campos são separados pelo caractere ":". Então:
sed 's/^root:.*:/root::/' /etc/shadow
e fiquei com
root::
Ao que parece a coisa foi longe demais. Na expressão ^root:.*: o sed substituiu tudo até o último ":". Acontece que, no jargão das expressões regulares, o comando é "guloso". Ele saiu trocando tudo, inclusive o caractere ":" até achar o último ":" na linha, o que deu um resultado totalmente diverso do que eu esperava. O jeito foi fazer:
sed 's/^root:[^:]*:/root::/' /etc/shadow
Desta vez deu certo:
root::11901:0:99999:7:::
A expressão "[^:]" significa "case com qualquer caractere exceto o caractere ":"".
Como o sed na verdade não faz a mudança no arquivo, eu preciso completar o comando:
# cp /etc/shadow /tmp/shadow # sed 's/^root:[^:]*:/root::/' /tmp/shadow > /etc/shadow # rm /tmp/shadow
A saída do comando é redirecionada, a partir do arquivo temporário. Ao final, movo o arquivo temporário para o lugar definitivo (/etc/shadow).
Esta é apenas uma das muitas facilidades que o sed oferece.
Para saber mais sobre expressões regulares o melhor caminho é ler o livro do Aurélio Marinho Jargas, "Expressões Regulares", publicado pela editora NOVATEC (http://novateceditora.com.br/guias/expreg/).
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários