Trocar senha de root NO BRACO remotamente
Este script foi parte de uma resposta a uma pergunta de como trocar a senha remotamente, via ssh, sem precisar digitá-la.
O problema é que o passwd aguarda que se digite duas vezes a senha e não aceita por entrada padrão e nem por parâmetro. A solução, meio suja, foi editar remotamente na mão o /etc/shadow
O problema é que o passwd aguarda que se digite duas vezes a senha e não aceita por entrada padrão e nem por parâmetro. A solução, meio suja, foi editar remotamente na mão o /etc/shadow
Descrição
Este script foi parte de uma resposta a uma pergunta de como trocar a senha remotamente, via ssh, sem precisar digitá-la.
O problema é que o passwd aguarda que se digite duas vezes a senha e não aceita por entrada padrão e nem por parâmetro. A solução, meio suja, foi editar remotamente na mão o /etc/shadow
O problema é que o passwd aguarda que se digite duas vezes a senha e não aceita por entrada padrão e nem por parâmetro. A solução, meio suja, foi editar remotamente na mão o /etc/shadow
#!/bin/bash
# Script para trocar senha remotamente (do root) via ssh
# Nova Senha
SENHA="teste123"
# Gerando o HASH Md5 desta senha (usado no Linux)
HASHMD5="`mkpasswd -H md5 $SENHA`"
# Como o binario passwd exige que se digite a senha duas
# vezes e nao aceita entrada padrao e nem parametros,
# a ideia eh editar MANUALMENTE o /etc/shadow, plantando
# o HASH do root no lugar certo
# Arquivo de hash temporario
TEMP="/tmp/novoSHADOW"
# Agora este escript faz BACKUP do /etc/shadow
# O backup sera salva com o nome /etc/shadow-ANODIAMES-SEGUNDOS
BACKUP="/etc/shadow-`date "+%y%m%d-%s"`"
echo $HASHMD5
# Arquivo com numeros IPs?
if [ -f servidores.txt ]
then
SERVIDORES="`cat servidores.txt`"
else
SERVIDORES="192.168.0.3 192.168.0.2"
fi
# Agora vem o ssh. Neste caso quem executar o script devera
# digitar a senha de login antiga do ssh, a menos que se
# esteja realizando autenticacao via chave publica (sem senha)
for Ip in $SERVIDORES
do
echo "Tentando trocar a senha em $Ip"
(
cat << END
cp /etc/shadow $BACKUP
echo -n 'root:${HASHMD5}:' > $TEMP
grep "^root:" /etc/shadow | cut -d: -f3- >> $TEMP
grep -v "^root:" /etc/shadow >> $TEMP
mv -f $TEMP /etc/shadow
END
)|ssh root@${Ip} 2>/dev/null
echo "Senha trocada no servidor $Ip"
done
# FIM