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

Publicado por Dorival Junior em 27/02/2010

[ Hits: 11.029 ]

 


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 ([email protected])
# 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

IPtables - Bloqueando o MSN

Bloqueio de Ultrasurf usando apenas Iptables

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

Instalação do Hamachi no Linux em 3 passos

Copiar HD via rede usando dd e nc

Leitura recomendada

Eu odiava Linux!

Antivírus Avira no ArchLinux

Como posso começar a programar?

Configurar Samba 3.6.5 e Windows 7

Resolvendo travamento do Firefox ao acessar sites com vídeos

  

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