LINUX, TI E MUITO MAIS!
Cadastre-se agora e receba gratuitamente o ebook do Curso Linux Ubuntu, dicas imperdíveis para ter sucesso com Linux
Insira seu email no campo ao lado para receber AGORA o Ebook!

Servidor Samba com troca de senha obrigatória

A necessidade de modificar a senha do usuário do SAMBA no próximo login, surgiu quando resolvi fazer a migração do samba 2 com ldap para o samba 3 com tdbsam.

trocar-senha-no-samba

No post, Gerenciando usuários de um servidor samba com o pdbedit, demonstrei uma solução utilizando o User Manager do Windows, já que o pdbedit não funcionou com o comando:

root# pdbedit --pwd-must-change-time="2010-01-01"
--time-format="%Y-%m-%d" nome_do_usuario

APRENDA A DOMINAR O LINUX

Aprenda a dominar o LINUX de uma vez por todos, pegue sua cópia

  • Ferramentas para instalar softwares adicionais
  • Shell do LINUX passo a passo, e muito mais...

Qual era o meu problema ?

Modificar a senha de mais de 300 usuário para uma senha padrão, e forçar a troca da senha no próximo login.

Ficaria inviável, fazer pelo User Manager, pois seria usuário por usuário. Perguntei a algumas listas de discução, e recebi a ajuda do FABIANO.

A sugestão foi utilizar o comando net do SAMBA.

Então para forçar a troca de senha no proximo login de um servidor samba, utilizei o comando sugerido.


net sam set pwdmustchangenow nome_do_usuario yes

Funcionou corretamente, para verificar, podemos usar este comando, com o pdbedit


root #>pdbedit -a pedrodelfino
new password:
retype new password:
Unix username: pedrodelfino
NT username:
Account Flags: [U ]
User SID: S-1-5-21-951807190-2904679001-2272606852-1023
Primary Group SID: S-1-5-21-951807190-2904679001-2272606852-1003
Full Name: Pedro Delfino
Home Directory: \sdl2pedrodelfino
HomeDir Drive: U:
Logon Script: logon.bat
Profile Path:
Domain: IP
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 0
Password can change: 0
Password must change: 0

Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Oque devemos perceber é esta saída:

Password last set: 0
Password can change: 0
Password must change: 0

Onde o parametro Password must change é oque indica que o usuário deverá trocar a senha no proximo login.

Leia também ...   7 Gerenciadores de Pacotes para LINUX que você deve conhecer ( + 58 comandos com exemplos de utilização)

Então para finalizar, coloquei aqui o script, que fiz para modificar a senha de todos os usuário do samba, para uma senha padrão, e já setar a opção Password must change=0.


#!/bin/bash
USER=`pdbedit -L | cut -d: -f1`
for i in $USER; do
(echo senha_padrao; echo senha_padrao)| smbpasswd -s $i
net sam set pwdmustchangenow $i yes
done

Experimente digitar o comando net sam set

net sam set
net sam set homedir Change a user's home directory
net sam set profilepath Change a user's profile path
net sam set comment Change a users or groups description
net sam set fullname Change a user's full name
net sam set logonscript Change a user's logon script
net sam set homedrive Change a user's home drive
net sam set workstations Change a user's allowed workstations
net sam set disabled Disable/Enable a user
net sam set pwnotreq Disable/Enable the password not required flag
net sam set autolock Disable/Enable a user's lockout flag
net sam set pwnoexp Disable/Enable whether a user's pw does not expire
net sam set pwdmustchangenow Force users password must change at next logon

Vai retornar as opções que podem ser modificadas.

Então é isso, encontramos uma solução para o problema. Espero ter ajudado, ainda não terminei a migração do servidor SAMBA, assim que terminar, pretendo colocar uma documentação completa aqui, como já fiz outra fez com a implementação com o SAMBA 2 com ldap (Integração de redes Linux e Windows com Samba e OpenLDAP)
samba com troca de senha obrigatório

Artigos Relacionados

Leia também ...   Primeiro comando para executar após a instalação do Ubuntu

Sobre pedrodelfino

Trabalha com tecnologia da informação, usando Linux a mais de 13 anos. Autor do Ebook Curso Linux Ubuntu.

  • Giorgio

    Amigo gostaria de saber o pq em especificico migrar de uma base sólida em ldap pra samba 3 com tdbsam não seria melhor samba 3 com ldap ?
    Eu não entendi direito 🙁

  • Prezado, o comando net não tem a flag sam na minha instalação do ubuntu server, gostaria de saber se tenho que instalar um pacote especifico ?

    Obrigado

  • admin

    Olá gustavo… Estes testes foram feitos no debian debian

    Testei no meu ubuntu 7.10 funcionou normal

    tenho estes pacotes instalados o samba

    [email protected]:~$ sudo dpkg -l | grep -i samba
    ii samba 3.0.26a-1ubuntu2.3 a LanManager-like file and printer server fo
    ii samba-common 3.0.26a-1ubuntu2.3 Samba common files used by both the server a

  • admin

    Olá Giorgio …

    Seguinte: Estou utilizando o ldap com samba até hoje na versão 2 do samba e do ldap.

    mas … tenho muitos problemas de lentidão

    o servidor não para, mas é muito lento para fazer uma modificação em um usuário por exemplo.

    lembrando que isto começou a acontecer quando passei dos 300 usuários.

    por este motivo quero fazer a migração até para fazer um teste… depois fica facil tbm migrar para samba 3 com ldap.

    Caso tenha uma experencias de samba 3 com ldap 3 queria saber como é a performace … depois de uns 200 usuários

  • Ruy

    usando o comando net sam set pwdmustchangenow funciona perfeitamente, quando a estação é xp. Com o vista não funciona. Alguém sabe como resolver?

    • @Ruy, Cara … infelizmente ou felizmente … nunca tive a necessidade de fazer isso com o vista … mas é uma boa questão para pesquisar … valeu !!!

  • Excelente dica, também estava tendo fazer isso através do comando pdbedit, mas não funcionava, agora tudo beleza!

    Abraços,

    Tarcísio.

  • Joca (Altemir Braz Dantas Junior)

    Com o pdbedit eu consegui veja no link

    http://www.vivaolinux.com.br/dica/Solicitar-a-alteracao-de-senha-no-primeiro-login-Samba

    e o script para alterar senhas todos os usuarios do samba

    #!/bin/bash

    for USUARIO in $(pdbedit -L | grep -v \’$:\’| grep -v \’root:\’ | cut -d: -f1)
    do
    pdbedit –pwd-must-change-time=0 $USUARIO
    pdbedit –pwd-can-change-time=0 $USUARIO

    done

  • Everaldo

    Valeu cara. Há muito tempo q estava tentando isso com o comando pdbedit, mas sem sucesso. Com esse comando net, funcionou mesmo.
    Abraços

Aula Online: Aprenda a Dominar o Linux De Uma Vez Por Todas

x

Aprenda a Dominar o Linux De Uma Vez Por Todas

Você vai aprender passo a passo como dominar o LINUX de uma vez por todas e descobrir os 4 pilares para ser um Profissional EXPERT.