Script para atualizar o arquivo host

1

Eu tenho o seguinte comando que cria corretamente o arquivo / etc / hosts que eu quero construir. No entanto, não posso escrevê-lo pela segunda forma devido a permissões, é claro. Então eu tentei variações do terceiro formulário, mas ainda erros em permissões. Alguém pode me dar uma sugestão para tentar?

cat hosts.tmp ; echo -n "myremotehost " ; cat ip.txt

cat hosts.tmp ; echo -n "myremotehost " ; cat ip.txt > /etc/hosts

cat hosts.tmp ; echo -n "myremotehost " ; echo mypassword | sudo -S cat ip.txt > /etc/hosts
    
por EdgeCase 26.09.2013 / 14:14

2 respostas

0

Isso foi difícil para eu descobrir! (Novato relativo ao Linux.)

No terminal, digite sudo -i e efetue login com sua senha de usuário. Você estará no diretório raiz, com poderes semelhantes a Deus ...: >)

Também encontrei bash filename.sh para iniciar o script. Perdoe-me, sinto uma grande sensação de realização escreveu um script (por sugestões em outro post) que matou todos os anúncios no Youtube!

    
por B. Fife 01.06.2015 / 06:17
-1

Eu colocaria as instruções para modificar seu arquivo /etc/hosts em um script de shell, digamos modify-hosts.sh , e então executaria

sudo modify-hosts.sh

Se você insistir em executar o script sem precisar fornecer uma senha, adicione uma entrada NOPASSWD especificamente para esse script e seu nome de usuário para /etc/sudoers .

Quanto ao conteúdo do arquivo, você poderia fazer:

cp hosts.tmp > /etc/hosts
echo "myremotehost $(cat /path/to/ip.txt)" >> /etc/hosts

Mais convenientemente, se myhostname já tiver uma entrada em /etc/hosts , você poderá editá-la:

sed -i -e 's/myhostname .*/myhostname '$(cat ip.txt)'/' /etc/hosts

E essa afirmação pode até sudo numa linha

sudo sed -i -e 's/myhostname .*/myhostname '$(cat ip.txt)'/' /etc/hosts

sem encontrar problemas de redirecionamento.

    
por zwets 26.09.2013 / 14:41