Servidor Samba com troca de senha obrigatória

Leia também!

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.

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

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: \\sdl2\pedrodelfino
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
<font color="#ff0000"> Password last set: 0
Password can change: 0
Password must change: 0</font>
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.

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

Blog Widget by LinkWithin
Veja também nossos posts mais populares
Posts relacionados

Veja as ofertas do E-tinet Shop

 nokia   mp7   n95   ps2   maverick   pen drive   notebook   mp3   gol   hd externo   playstation 2   mp5   np   ipod   natal   playstation 3   gps   celular   mp15   mp11   tenis   fusca   celulares   mp12   dvd automotivo   iphone   celular mp12   psp   hiphone   xbox 360   camera digital   opala   hd   mp9   ps3   nextel  

Sobre o Autor