Como escrever em arquivos protegidos usando o sudo e redirecionamento

Publicado por Fábio Berbert de Paula em 11/05/2021

[ Hits: 1.937 ]

Blog: https://www.instagram.com/alexabolada/

 


Como escrever em arquivos protegidos usando o sudo e redirecionamento



Você está como usuário comum e deseja escrever usando direcionamento de saída para um arquivo que requer permissão de root para escrita:

echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

Beleza, vamos tentar com o sudo?

sudo echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

Opa, mesmo erro? Sim! Isso ocorre porque o sudo executou o comando echo como superusuário, mas após o redirecionamento de saída você volta a ter permissão de usuário comum.

Para resolver esse problema usamos o comando "tee" combinado com o sudo:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Espero ter ajudado!

Outras dicas deste autor

Site de depuração e aprendizado de expressões regulares

Como copiar arquivos mantendo a estrutura de diretórios e sub-diretórios

HTML - Lazy Loading

PyCharm no Debian 10 Buster

Vim - Convertendo texto selecionado para uppercase ou lowercase

Leitura recomendada

sshpass - Passando senha como parâmetro no SSH e scp sem registro de chave pública

Como trocar senhas de usuários dentro de um Shell Script

Kernel for Newbies - Fácil Assistente de Compilação do Kernel

Verificando se um arquivo cabe dentro de um DVD

Criando códigos de barra sequenciais usando Shell Script e PHP

  

Comentários
[1] Comentário enviado por Ryuk em 11/05/2021 - 09:51h

Beleza! Outra opção é usar o "su -c 'comando'":
$ su -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

[2] Comentário enviado por danniel-lara em 11/05/2021 - 11:07h


Muito bom

[3] Comentário enviado por fabio em 11/05/2021 - 11:47h


[1] Comentário enviado por Ryuk em 11/05/2021 - 09:51h

Beleza! Outra opção é usar o "su -c 'comando'":
$ su -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'


Boa! O problema do "su -c" é que ele vai pedir a senha, o que torna a solução inviável em scripts de automação, que deve ser o caso da maioria que irá cair de paraquedas nessa dica. Eu inclusive cheguei à essa solução por causa de um script meu que precisava escrever nesse arquivo kkk

[4] Comentário enviado por BRVN01 em 11/05/2021 - 13:06h


Muito bom, bem mais simples do que eu usava, vou começar a usar essa sua solução, obrigado!

Eu usava assim:
sudo bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

[5] Comentário enviado por maurixnovatrento em 13/05/2021 - 20:08h


Eu usava esse comando. Muito bom. Mas o redirecionamento pode ser utilizado sim, só que dessa maneira:

sudo sh -c 'comando > saida'

Funciona também.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[6] Comentário enviado por maurixnovatrento em 13/05/2021 - 20:11h


[4] Comentário enviado por BRVN01 em 11/05/2021 - 13:06h


Muito bom, bem mais simples do que eu usava, vou começar a usar essa sua solução, obrigado!

Eu usava assim:
sudo bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"


Opa. Só agora que vi, já tinhas colocado essa opção, é como eu usaria. Outra coisa, dentro do script eu coloco normal sem sudo. Só daí o script todo deve ser executado como root. Eu faço assim, pra não ter problemas com isso.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts