Objetivo:
Explicar como Criar usuários no samba4
Introdução:
Este Post tem como objetivo explicar como criar usuários e seus mapeamentos pelo terminal sem o uso do RSAT.
Cenário:
Servidor: Debian 7
Versão do Samba: 4.0.3
Nome do usuario que sera criado = mundoti
Senha do usuario = 1234.Mudar.Senha
Nome do dominio = empresa.net
Diretório de instalação do samba = /opt/samba/
*Obs: para executar esses comandos sem ter digitar o caminho completo
Ex samba-tool /opt/samba/bin/samba-tool
você tem que ter exporta a variável path do local da instalação do samba4 isso pode ser feito da seguinte forma.
Digitando o comando
# export PATH=$PATH:"/opt/samba/bin:/opt/samba/sbin”
Crie um Mapeamento editando o seu smb.conf , no nosso caso em /opt/samba/etc/smb.conf
# vi /opt/samba/etc/smb.conf
Adicionando as seguintes linhas
[home] path = /home/samba/%U comment = Diretorio Home dos Usuario read only = yes
Salve e saia do arquivo Reinicie o servidor samba
# /etc/init.d/samba restart ou service samba restart
Agora Vamos Criar o usuário
# samba-tool user add mundoti 1234.Mudar.Senha --home-directory="\\\\empresa.net\\home" --home-drive=U:
Criar pasta para o usuário
# mkdir -p /home/samba/mundoti
Setando permissões na pasta para que somente o dono tenha acesso
# chmod 700 /home/samba/mundoti
No samba4 os usuários não são Criados no sistema Unix ( Linux ) por isso temos que pegar o uid do usuário no samba
# wbinfo -i mundoti | cut -d":" -f3
Dando Permissão somente para o usuário
# chown 3000020.users /home/samba/mundoti/
Caso queira fazer isso de uma forma automatizado segue o script abaixo
Script
#!/bin/bash # # clear DOMINIO=`wbinfo -i administrator | cut -d'\\' -f1` echo "Script de Criação de usuario" echo "Seu Dominio e : $DOMINIO" echo "Certifique-se de que existe um Compartilhamento chamado 'home' no seu smb.conf " echo "" echo "Estes Dados estao Corretos? Sim ou Não " echo -n "s ou n: " read resp if test "$resp" = "s" then echo "Resposta Foi Sim." echo "" elif test "$resp" = "s" echo "Resposta Foi Não" exit 0 then echo "Responda 's' ou 'n' ." exit 0 fi if test -d /home/samba then/// echo "" else echo "Diretorio $dominio NAO Existe" echo "Criando o Diretorio" mkdir /home/samba echo "Diretorio Criado. Execute novamente o script $0 " exit 0 fi echo "Script Para cadastro de usuarios Para Samba4: " echo "" echo -n "Digite o Nome do Usuario que sera Cadastrado: " read LOGIN samba-tool user add $LOGIN 1234.Mudar.Senha --home-directory="\\\\$DOMINIO\\home\\$LOGIN" --home-drive=U: UID=`wbinfo -i "$LOGIN" | cut -d":" -f3` mkdir -p /home/$DOMINIO/$LOGIN chown $UID.users /home/$DOMINIO/$LOGIN chmod 700 /home/$DOMINIO/$LOGIN
*obs: esse script ira criar o usuário com a senha 1234.Mudar.Senha
Socorro! alguem me ajude!
Tenho o samba 4.0.4 compilado no CentOS 6.4 e rodando direitinho na empresa onde trabalho, consigo add maquinas windows xp, 7, 8 e linux no dominio do samba4.. agora depois de semanas tentandoa qui na empresa a diretoria me obriga a deixar assim: assim que um usuário abre o Windows Explorer ou o Meu Computador é para aparecer um mapeamendo da unidade U: para o home do usuário e Z: para o Servidor de Arquivos (onde fica as pastas Diretoria , Financeiro, Recursos Humanos, etc..)
Serei eternamente grato! ;/
Procure mapeamento por GPO há muitos manuais windows sobre o assunto com W7 e superiores não tive problemas, mas com XP ainda não esta redondo.
Boa Tarde
Otimo tutorial !!! agora no script para criação de usuário altere a variavel UID para outra como UUID pois a UID e reservada pelo sistema no Centos e fica dando erro.
Vlw pela dica no debian Não tive esse problema
Boa tarde :D
quando eu vou adicionar um usuario acontece o seguinte erro:
error (ldb) failed to add user /source/dsdb/samba/ldb_modules/ridalloc.c:517 no rid set dn – remote rid set allocation needs refresh
Qual seria o problema?
valeu, abraço
amigo, no worpress, o – – vira – unico, tenta por — e ve se funfa :D
Quero exportar o usuários para outro servidor com as mesmas configurações
Pelo pdbedit dá erro na importação. Como fazer nesse caso?
Obrigado
Prezado Jeferson Salles, bom dia!
Inicialmente gostaria de parabenizá-lo pelo excelente material disponibilizado!
Aproveito a oportunidade para perguntar ao nobre amigo se já conseguiu mapear compartilhamentos criados no Samba4 automaticamente em estações de Trabalho clientes Linux (Ubuntu). Deixe eu tentar resumir minha situação:
Tenho um servidor Samba4 (Debian Wheezy). Minhas estações de trabalho clientes são todas Linux (Ubuntu 14.04 LTS). Gostaria de mapear os compartilhamentos criados no servidor samba4 automaticamente em minhas estações Linux. Em testes realizados com estações Windows, eu consigo mapear os citados compartilhamentos sem problemas, através do Active Directory. Ressalto que minhas estações de trabalho Linux estão todas ingressadas no domínio com os usuários autenticando normalmente, mas os compartilhamentos são criados manualmente. Caso tenhas alguma solução eu desde já agradeço a presteza!
Saudações!
Bom dia amauri,
Deixa eu te fazer uma pergunta !!!!
Se tu montar um shellscript para mapear essa questão na estação não resolve ?
att,
Gabriel
Boa tarde Gabriel! Primeiramente agradeço por sua resposta!
Quanto à sua pergunta, eu não posso usar um script neste caso, pois cada estação de trabalho é utilizada por vários usuários com perfis diferentes. Então, a utilização de um script, neste caso específico, não resolveria meu problema. Mas se o amigo puder disponibilizar esta solução com script, talvez eu possa utilizá-la em alguns casos específicos. Eu preciso que os usuários autentiquem-se no Samba4 e carreguem o mapeamento automático, como se fosse um perfil móvel!
Caso tenha alguma outra solução, eu desde já agradeço!
Boa tarde Amauri,
Desculpe a demora na resposta, dei a ideia do script mais no meu caso eu não tenho nenhuma maquina linux acessando o samba 4 eu sei que e possível fazer ela autenticar no domínio mais criar um logon.bat direto nunca testei e não sei como ela vai se comportar.
Essa semana estou com a corda apertada com alguns prazos de clientes e não consigo montar um lab pra testar.
Se conseguir algo avisa assim posso aprender também e quem sabe não consigo da uma melhorada no script.
att,
Gabriel
Boa tarde, Gabriel!
Sei que deve estar muito ocupado com seus afazeres. Mas quando der, tenta analisar essa minha situação.
Tenho o Samba 4.1.13 instalado em um Debian 7 usando como Samba_internal.
Instalei winbind, kerberos e demais pacotes.
Consigo logar no dominio com windows. E com uma dica sua em outro post, consegui acessar o servidor pelo ubuntu 64 (só não sei se loguei no dominio ou se está somente vendo as pastas do servidor samba pela rede, através do smb no nautilus), pois quando reinicio a maquina, tento entrar com o usuario “administrator”, criado para gerenciar o samba, e nao consigo logar. Só logo com o usuario criado na hora da instalação da maquina.
Mas vamos adiante.
Segui essas suas dicas deste post e criei usuário com senha e sua devida pasta.
Quando vou logar na maquina com ubuntu, não funciona. Aí logo com o usuario padrao dessa maquina e entro em “rede” e depois em “conectar ao servidor”. Aparece: Compartilhamentos Windows em ( numero ip do server ) smb://ip do server.
Dou 2 cliques e aparece as pastas que eu criei manualmente no smb.conf.
Pedi usuario; dominio (ja vem preenchido) e senha.
Digito o usuario responsavel por gerenciar o samba: administrator e a senha criada. Mas dá erro.
Tento com o usuario criado de acordo com essa sua dica desse post. Também da erro.
Nem com o proprio usuario dessa maquina, entro.
Meu smb.conf está assim:
[global]
security = ads
workgroup = ARQUIVOS
realm = ARQUIVOS.INTRANET
netbios_name = XANGAI
server role = active directory domain controller
dns forwarder = 192.168.150.1
idmap_ldb:use rfc2307 = yes
[netlgon]
path = opt/samba/var/locks/sysvol/arquivos.intranet/scripts
read only = No
[sysvol]
path = /opt/samba/var/locks/sysvol
read only = No
[home]
path = /home/samba/%U
comment = Diretorio Home dos Usuarios
read only = yes
[profiles]
comment = Profiles Remotos
path = /home/profiles
read only = no
browseable = no
[Dti]
comment = Diretorio do Setor 1
path = /Dti
read only = yes
Tem algo de errado ou faltando nesse conf?
Desde já, meu muito obrigado pela atenção e pelos conhecimentos passados.
obs: Esse ip no dns forwarder é o endereço do server para se comunicar com a rede.
Dti é a pasta que criei seguindo esse seu post.
Esse servidor é somente para usuarios se logarem no dominio e acessarem seus arquivos.
Boa Tarde Amauri,
Andei olhando e sei que e possivel fazer o linux autenticar no samba 4 isso inclusive eu uso para efetuar o esquema do squid / ntlm agora vou te ser sincero não usei ainda o usuario e senha do samba para entrar no linux.
mas acredito que o caminho das pedras seja esse arquivo:
vi /etc/nsswitch.conf
[…]
passwd: files winbind
shadow: files
group: files winbind
[…]
Vi uma coisa legal que pelo novell suse da pra colocar a maquina por parte grafica as vezes vale a pena pegar uma vm instalar configurar e olhar os arquivos envolvidos no processo pra saber o que eles fazem.
att,
Gabriel
Boa tarde, estou seguindo seus tutoriais para instalar o Samba4 aqui como PDC. Mais estou tendo alguns problemas na hora de criar os usuarios, utilizo CentOS6.5.
Na hora que rodo o comando
wbinfo -i mundoti | cut -d”:” -f3
Esta me retornando o seguinte erro:
failed to call wbcGetpwnam: WBC_ERR_WINBIND_NOT_AVAILABLE
Alguma dica de como resolver isso?
Tenho uma duvida aqui, quando você cria usuário, para alterar as configurações feitas ao usuário na hora de criar, é possível? só consigo fazer utilizando a ferramenta do RSAT, mas o arquivo onde o samba guarda as informações do usuário é desconhecido pra mim, se alguem souber.
gostaria de saber se existe algum parametro que eu possa adicionar no comando samba-tool user add mundoti 1234.Mudar.Senha –home-directory=”\\\\empresa.net\\home” –home-drive=U: para que o usuario criado no samba também seja criado no linux permitindo adicionar cotas usando do quotas no servidor debian.
Ola, porque nas instruções acima você usa /home/samba e no script você usa /home/domínio?
Observe que no smb.conf é /home/samba.
Tem algum erro no script ou está certo?
Obrigado.
Geraldo.