Solução para alteração de senha pelo próprio usuário no Samba

Publicado por Dorival Junior em 27/02/2010

[ Hits: 13.582 ]

 


Solução para alteração de senha pelo próprio usuário no Samba



Apresento uma das soluções possíveis para que o próprio usuário Windows faça a alteração da sua senha junto ao servidor Samba PDC.

Configurando o ambiente:

A utilização de Samba como servidor de domínios (PDC) é bastante utilizada e na minha opinião é uma solução muito interessante de se adotar. Gostaria de apresentar nesta dica UMA das formas de permitir um usuário alterar sua própria senha no servidor, levando em consideração a segurança do ambiente. Ressalto que esta não é a única forma e nem a definitiva, mas que no meu caso em particular (não entrarei em detalhes) foi a opção mais viável.

Considerando que os usuários já tenham sido cadastrados no Linux e no Samba, faça a seguinte alteração no /etc/passwd:

Antes:

tux:x:1099:1099:,,,:/home/tux:/bin/bash

Depois:

tux:x:1099:1099:,,,:/home/tux:/opt/altera_minha_senha.sh

Conforme você já deve saber, cada linha do /etc/passwd corresponde a um usuário, logo você deverá fazer esta alteração nos usuários que utilizam compartilhamento através do Samba.

Agora vamos criar o script responsável pela alteração das senhas:

#!/bin/bash
#=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# script: altera_minha_senha.sh
# objetivo: alterar a senha do proprio usuario no Linux e samba
# autor: dorival junior (dorivaljunior@gmail.com)
# data: 19/02/2010
#=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


USUARIO=$( whoami )
LOG="/opt/log.alteracao_senha"
DATA=$( date )

clear
echo ""
echo "=======| ALTERACAO DE SENHA DO SAMBA |======"
echo ""
echo "Informacoes importantes:"
echo " - as senhas nao sao exibidas quando digitadas"
echo " - ao digitar a senha ATUAL errada, o sistema nao reclama. Neste caso,"
echo " nao havera alteracao de senha."
echo ""
echo "Informe a sua senha ATUAL:"
# faz com que o prompt nao exiba oque foi digitado
stty -echo
read OLD_PASSWORD
echo "Informe a sua NOVA senha:"
read NEW_PASSWORD
# faz o prompt voltar ao normal
stty echo

# os comandos abaixo fazem a alteracao da senha e jogam o resultado para um arquivo de LOG.
# Isto é interessante para acompanhar e comparar ações dos usuários referente a alteração de senha.

echo "|========= $DATA - usuario $USUARIO requisitou alteracao de senha" >> $LOG

echo "alterando a senha de $USUARIO no linux..."
( echo $OLD_PASSWORD ; echo $NEW_PASSWORD ; echo $NEW_PASSWORD ) | passwd 2>> $LOG

echo "alterando a senha de $USUARIO no samba..."
( echo $OLD_PASSWORD ; echo $NEW_PASSWORD ; echo $NEW_PASSWORD ) | smbpasswd -s 2>> $LOG

echo "|========= fim do relatorio" >> $LOG
echo ""
echo "Pressione uma tecla para continuar..."
read

Para evitar que usuários curiosos mexam no script, atribua as seguintes permissões:

# chmod 711 /opt/ (permitirá que qualquer um execute arquivos de dentro do opt, mas que não possam visualizá-los)

# chmod 744 /opt/altera_minha_senha.sh (permite a leitura e execução do script. Porém a leitura não será possível devido a permissão no nível acima, mas mesmo assim deve ser setada desta forma)

Pronto! Basta que o usuário acesse o servidor via SSH e o script de alteração de senha é executado.

Sugiro que seja disponibilizada a ferramenta "putty" para que os usuários Windows façam o acesso ssh e alterem sua senha. Esta ferramenta é pequena e não requer instalação.

Considerações finais:

Não fiz o tratamento de erros quanto à senha, mas isso pode ser adicionado e melhorado.

Até a próxima.

Outras dicas deste autor

Copiar HD via rede usando dd e nc

IPtables - Bloqueando o MSN

Instalação do Hamachi no Linux em 3 passos

Utilização de SSH com par de chaves criptográficas

Bloqueio de Ultrasurf usando apenas Iptables

Leitura recomendada

nmapAutomator - Automatização de NMAP para Reconhecimento e Enumeração

Dual Boot Insigne Momentum + Windows 7

Criando um firewall no Linux

Como instalar Java JDK e JRE no Ubuntu Server 10.04?

Usando o wget

  

Comentários
[1] Comentário enviado por virgulla em 28/02/2010 - 09:46h

Acho inviável pedir para os usuários conectarem por Putty no servidor para alterar senha. Seria complexo para os usuários comuns e uma brecha de segurança se alguém começar a forçar coisas uma vez dentro do servidor.

[2] Comentário enviado por dorivaljunior em 01/03/2010 - 07:38h

Olá Virgulla, não concordo totalmente com sua posição.

1° A utilização do putty não é complexa, basta baixar o programa (não precisa instalar), preencher o IP e selecionar SSH e pronto !!! (como eu disse, esta não é a única, porém a solução viável no meu caso). O resto será feito pelo próprio script que tomou lugar do interpretador de comandos. Além do mais, se o usuário for acessar sua conta via acesso remoto (FTP), o usuário e senha também já estarão prontos e são afetados pela forma de alteração proposta.

2° Quanto a segurança, não é possível o usuário forçar alguma coisa uma vez que o script é o interpretador de comando. Se ele tentar sair do script, o sistema cai. Peço que instale a solução e faça o teste, pois eu o fiz e comprovo.

3° Nenhum sistema é perfeito, mas este está nos níveis aceitáveis, porém se você puder comprovar através de experiência prática que esta solução permite sim comprometer a segurança como você diz, vamos montar um artigo em conjunto aqui mesmo no VOL, seria muito interessante !!

até mais, obrigado pela análise!!!

[3] Comentário enviado por pdjailton em 11/05/2010 - 14:32h


Dorival ....

Parabéns pela dica .. funcionou blz .. ficou primeira ..!!

vlw



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts