Gerenciando usuários de um servidor samba com o pdbedit (parte 01)

O utilitário de gerenciamento de usuário pdbedit, traz para o samba 3 muitas funcionalidades antes escondidas ou que nem existiam no samba 2, com o padrão de armazenamento de usuário no arquivo smbpasswd.

gerenciar-usuarios-samba

Neste artigo mostrarei algumas experiências no gerenciamento de usuários do samba 3 com o pdbedit, este estudo surgiu da necessidade de fazer uma migração do samba 2 com ldap para um samba 3.

Desde que eu implantei a solução, Integração de redes Linux e Windows com Samba e OpenLDAP, não havia mais trabalhado em uma implantação com o samba em PDC, somente em redes pequenas.

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...

Mudei muito a minha opnião sobre ldap, mas isto é assunto para outro artigo.

Este pequeno tutorial, não vai mostrar como configurar o samba, só vo tocar no assunto “smb.conf” uma unica vez, ou seja serve mesmo para quem quer saber como gerenciar os usuários do samba e para quem estava acostumado com o simples smbpasswd (que ainda continua lá em funcionamento sim). O pdbedit vai mostrar detalhes sobre seus usuários, que antes ficarava claro somente com samba usando autenticação com ldap.

Para começar…

Criando um usuário

Primeiro vamos criar um grupo

root #> groupadd TI

Agora vamos criar um usuário normal, primeiro no linux

root #> useradd -m -c "Pedro Delfino" -G TI -g users pedrodelfino

Definimos a senha

root #> passwd pedrodelfino

Lembrando que esta senha, é o acesso ao sistema no sheel no linux, ainda nâo é a senha do samba

Mapeando grupo do linux para o samba

Agora vamos usar o comando net groupmap para mapear o grupo do linux para o samba

Leia também ...   Calma, Calma, É só o Linux

root #> net groupmap add ntgroup="Grupo TI" unixgroup=TI type=d

Para listar os grupos que estão mapeados usamos o comando net groupmap list

root #> net groupmap list
Grupo TI (S-1-5-21-951807190-2904679001-2272606852-1022) -> TI
Administrators (S-1-5-32-544) -> 15000
Domain Admins (S-1-5-21-951807190-2904679001-2272606852-1001) -> root
Domain Users (S-1-5-21-951807190-2904679001-2272606852-1003) -> users
Domain Guests (S-1-5-21-951807190-2904679001-2272606852-1005) -> nogroup

Mapeando estes grupos fica mais facil de gerenciar as permissões nos compartilhamentos, e pastas. Nada nos impede de pular esta parte e fazer o gerenciamento tudo através do chown, eu prefiro a segunda opção, pois no meu caso como eu já tenho todos os grupos criados, mapear todos eles para o samba vai dar muito trabalho, mas por outro lado caso isso seja feito podemos utilizar o User Maganager da Microsoft para gerenciar os os grupos.

No manual oficial do samba, existe uma capitulo explicando as ganhos deste mapeamendo de grupos.

Falando no User Manager, é um ótima alternativa para gerenciar os usuários do samba.

Adicionando um usuario ao samba

No meu caso estou utilizando o tdbsam para gerenciar os usuários, não estou utilizando smbpasswd nem ldap.

No arquivo /etc/samba/smb.conf, eu estou utilizando esta opção, para definir isto.

passdb backend = tdbsam

Executando o seguinte comando

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: Ter, 12 Fev 2008 12:11:50 BRST
Password can change: Ter, 12 Fev 2008 12:11:49 BRST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Então, executamos o comando pdbedit -a pedrodelfino para adicionar o usuário, foi solicitado uma senha, esta senha sim é a senha do samba, ou seja a senha que o usuário vai logar na estação de trabalho windows.

Leia também ...   5 Maneiras arrasadoras de blogar utilizando Linux

Para verificar os dados de um usuário no samba temos o comando

root #> pdbedit -Lv pedrodelfino

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: Ter, 12 Fev 2008 12:11:50 BRST
Password can change: Ter, 12 Fev 2008 12:11:49 BRST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Aqui temos todas as informações deste usuário

Também podemos listar todos os usuários do samba

root #> pdbedit -L

ou

root #> pdbedit -Lw

Modificar a senha o usuario do samba no primeiro login no windows

Uma necessidade que sempre tive e nunca consegui implementar. Fazendo a migração do samba 2 para o samba 3, importei todos os usuários que estavam em um ldap, então preciso mudar a senha de todos os usuários (que no meu caso são mais de 300) para uma senha padrão e depois setar a opção para o usuário mudar a senha no proximo login.

Segundo o manual do samba 3 na página 276, para forçar o usuário a trocar a senha no proximo login, temos que utilizar o seguinte comando

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

Mas isto não funcionou no meu servidor.

E nem este outro comando, que também esta no manual
root# pdbedit --pwd-must-change-time=0 nome_do_usuario

Isto deveria modificar no cadastro do usuário a opção

root #> pdbedit -Lv pedrodelfino
...
Password last set: Mon, 05 Dec 2005 23:37:11 MST
Password can change: Wed, 07 Dec 2005 23:37:11 MST
Password must change: 0
...

Infelizmente não funcionou.

Leia também ...   Como anda o Curso de Linux Ubuntu Online ?

Resolvi este problema utilizando o User Manager no windows, fiz o download, loguei em um estação windows como root, e acessei User Manager no meu dominio normalmente, editei o usuário e marquei a opção:

User change Must password at next Logon

Isto sim funcionou, o cadastro ficou assim

root #> pdbedit -Lv pedrodelfino
...
Password last set: 0
Password can change: 0
Password must change: 0
...

Logando com o usuário na estação windows.

captura_da_tela-1.png

captura_da_tela-2.png

captura_da_tela-3.png

captura_da_tela-4.png

Este assunto ainda é minha fonte de pesquisa, pois caso comando para forçar o usuário a modificar a senha no primeiro login tivesse funcionado no samba 3 seria ótimo, para gerar um script e fazer isso com todos os usuários.

Por hoje é só, nesta primeira parte do artigo, espero ter conseguido passar as minhas experiências no gerenciamento de usuário do samba utilizando o pdbedit. Na segunda parte do artigo, eu vo falar dos meus testes na modificação das políticas padrão do dominio do PDC samba.

Não esqueça de executar.

root #> man pdbedit

Pois ajuda e muito.

Referência do forum do Debian
Manual oficial do samba 3

Sobre pedrodelfino

Trabalha a mais de 14 anos com administração de sistemas LINUX, dedicado em ensinar novos profissionais a atuar com servidores. Saiba mais aqui. "Caso queira participar de uma aula online comigo utilize o formulário Acima"