Script atualiza arquivo chap-secrets [RESOLVIDO]

1. Script atualiza arquivo chap-secrets [RESOLVIDO]

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 27/03/2020 - 03:32h

Boa noite.
Um amigo aqui o Raimb , me ajudou a fazer ess3 script, estou tentando adapta-lo a fazer com que ele leia o arquivo de senha pSave.txt e jogue todo o conteúdo desse arquivo que é uma palavra só no campo da senha no chap-secrets. Agradeco se alguém puder ajudar. Segue meu script adaptado, eu tentei fazer com que ele pegue tudo no arquivo-alvo2 que e o pSave que grava a senha e jogue apos 2 espacos no arquivo alvo1 pois apos o segundo espaco e a coluna secret do chap-secrets mas nao ta indo
script troca chap:
#!/bin/bash
ARQUIVO_ALVO='/etc/ppp/chap-secrets'
ARQUIVO_ALVO2='/var/www/nuvembox/pSave.txt'
Pass_ANTIGO=$(awk -F" *" $ARQUIVO_ALVO)
Pass_NOVO=$(awk -F" *" $ARQUIVO_ALVO2)
mensagem () {
echo -e "Pass ${stt} em $ARQUIVO_ALVO\n$(egrep ' *' $ARQUIVO_ALVO)\n"
}

#Se Pass_NOVO É DIFERENTE do Pass_ANTIGO E a var Pass_NOVO não é VAZIA, altera o arquivo e reinicia o server.
if [[ $Pass_ANTIGO != $Pass_NOVO && $Paas_NOVO ]];then
sed -i "s/$Pass_ANTIGO/$Pass_NOVO/" $ARQUIVO_ALVO
wait
stt="Alterado"
mensagem
/etc/init.d/vsftpd restart
else
stt="Não Alterado"
mensagem
fi

chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
nuvembox pptpd senha@01 *

Agradeço muito qualquer ajuda.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/03/2020 - 20:18h


jorgessn escreveu:

Boa noite MSOLIVER e obrigado pela sua ajuda.
O arquivo pSave.txt grava apenas uma senha nele entao seu conteudo é apenas uma palavra.
Segue arquivo alvo pSave.txt :
senha@01

O arquivo chap-secrets é o arquivo que armazena usuário e senha do programa PPTPD. Então eu queria que o script jogasse o conteudo do arquivo pSave.txt que é uma palavra só no campo secret referente a senha do pptpd, o chap secrets funciona assim, a coluna 1 é o nome de usuario, coluna 2 é nome do server, coluna 3 é o campo da senha secret que importa pra gente e a coluna 4 é o campo do ip liberado que no caso tem * pra liberar todos os ip's. Segue o arquivo alvo chap-secrets :
# Secrets for authentication using CHAP
# client server secret IPaddresses
nuvembox pptpd senha@01 *

Obs: Entao eu queria que ao executar o nosso script TrocaChap.sh, ele pegasse o conteúdo do arquivo pSave.txt e jogasse na coluna 3 do arquivo chap-secrets que diz respeito a senha da vpn, no caso ele trocaria a coluna 3 onde tem senha@01 pra palavra contida no arquivo pSave.txt.
Obrigado mais uma vez a atenção MSOLIVER, voce sempre me ajudando, muito grato mesmo a sua boa vontade!

Boa noite Jorge, parece que agora entendi . . . .
cat pSave.txt :
nova_senha@novasenha

cat chap-secrets
# Secrets for authentication using CHAP
# client server secret IPaddresses
nuvembox pptpd senha@atual *

Script
#!/usr/bin/bash
newpass=$(sed -n '1p' psave.txt);
oldpass=$(awk 'NR==3 {print $3}' chap-secrets);
sed -i "s/${oldpass}/${newpass}/" chap-secrets #Recomendo
#sed -ri "/^[^#]/s/ [[:graph:]]+/ ${newpass}/2" chap-secrets
#sed -ri "3s/ [[:graph:]]+/ ${newpass}/2" chap-secrets

Ps.: Deixei as outras opções do "sed" comentadas,
Apesar de serem mais "enxutas", pois, não necessitam da var "oldpass",
vejo que podem falhar,
Uma Usa a linha não comentada como referencia,
sed -ri "/^[^#]/s/ [[:graph:]]+/ ${newpass}/2" chap-secrets
A outra, usa o numero da linha como referencia:
sed -ri "3s/ [[:graph:]]+/ ${newpass}/2" chap-secrets
Ai você decide . . . .
Conto com a sua colaboração, quando finalizarmos,
não esqueça de marcar a MELHOR RESPOSTA.....
É isso.
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Abc.: Marcelo Oliver
______________________________________________________________________

3. Re: Script atualiza arquivo chap-secrets

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/03/2020 - 20:00h

jorgessn escreveu:

Boa noite.
Um amigo aqui o Raimb , me ajudou a fazer ess3 script,
estou tentando adapta-lo a fazer com que ele leia o arquivo de senha pSave.txt e jogue todo o conteúdo desse arquivo que é uma palavra só no campo da senha no chap-secrets.
Agradeco se alguém puder ajudar.
Segue meu script adaptado, eu tentei fazer com que ele pegue tudo no arquivo-alvo2 que e o pSave que grava a senha e jogue apos 2 espacos no arquivo alvo1 pois apos o segundo espaco e a coluna secret do chap-secrets mas nao ta indo
script troca chap:
#!/bin/bash
ARQUIVO_ALVO='/etc/ppp/chap-secrets'
ARQUIVO_ALVO2='/var/www/nuvembox/pSave.txt'
Pass_ANTIGO=$(awk -F" *" $ARQUIVO_ALVO)
Pass_NOVO=$(awk -F" *" $ARQUIVO_ALVO2)
mensagem () {
echo -e "Pass ${stt} em $ARQUIVO_ALVO\n$(egrep ' *' $ARQUIVO_ALVO)\n"
}

#Se Pass_NOVO É DIFERENTE do Pass_ANTIGO E a var Pass_NOVO não é VAZIA, altera o arquivo e reinicia o server.
if [[ $Pass_ANTIGO != $Pass_NOVO && $Paas_NOVO ]];then
sed -i "s/$Pass_ANTIGO/$Pass_NOVO/" $ARQUIVO_ALVO
wait
stt="Alterado"
mensagem
/etc/init.d/vsftpd restart
else
stt="Não Alterado"
mensagem
fi

chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
nuvembox pptpd senha@01 *

Agradeço muito qualquer ajuda.

Boa noite Jorge.
A sintaxe dos comandos "awk" estão estranhas, aqui deu erro.....
awk -F" *" arquivo.......
Poste um trecho de cada ARQUIVO ALVO...
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


4. Script pra atualizar o arquivo cha-secrets com o conteudo do arquivo pSave.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 28/03/2020 - 19:09h

Boa noite MSOLIVER e obrigado pela sua ajuda.
O arquivo pSave.txt grava apenas uma senha nele entao seu conteudo é apenas uma palavra.
Segue arquivo alvo pSave.txt :
senha@01

O arquivo chap-secrets é o arquivo que armazena usuário e senha do programa PPTPD. Então eu queria que o script jogasse o conteudo do arquivo pSave.txt que é uma palavra só no campo secret referente a senha do pptpd, o chap secrets funciona assim, a coluna 1 é o nome de usuario, coluna 2 é nome do server, coluna 3 é o campo da senha secret que importa pra gente e a coluna 4 é o campo do ip liberado que no caso tem * pra liberar todos os ip's. Segue o arquivo alvo chap-secrets :
# Secrets for authentication using CHAP
# client server secret IPaddresses
nuvembox pptpd senha@01 *

Obs: Entao eu queria que ao executar o nosso script TrocaChap.sh, ele pegasse o conteúdo do arquivo pSave.txt e jogasse na coluna 3 do arquivo chap-secrets que diz respeito a senha da vpn, no caso ele trocaria a coluna 3 onde tem senha@01 pra palavra contida no arquivo pSave.txt.
Obrigado mais uma vez a atenção MSOLIVER, voce sempre me ajudando, muito grato mesmo a sua boa vontade!


5. MSOLIVER, deu certo. Muito obrigado !

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 29/03/2020 - 00:16h

MSOLIVER, Jesus te gui pra continuar ajudando os outros nessa missão muito bonita que escolheu. Jesus te guie nos caminho da alegria. Muito obrigado!


6. Re: Script atualiza arquivo chap-secrets [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/03/2020 - 16:35h


jorgessn escreveu:

MSOLIVER, Jesus te gui pra continuar ajudando os outros nessa missão muito bonita que escolheu. Jesus te guie nos caminho da alegria. Muito obrigado!

Amém a nós todos Jorge.
Obrigado pela melhor resposta.
Abraço,
Marcelo




  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts