Slackware 13 com Samba PDC completo

O objetivo desse arquivo é demonstrar de maneira simples como montar um servidor Samba com PDC e perfil móvel. Depois de muita pesquisa chegamos ao resultado desse artigo para que todos que precisarem possam tirar o máximo proveito possível. Todos os créditos serão dados no final do artigo. Bom proveito!

[ Hits: 33.732 ]

Por: Joel Silva em 13/04/2011


Configuração do Samba - smb.conf



O arquivo de configuração do Samba foi contribuído pelo nosso amigo H4ck-Du5t e fiz algumas modificações. Segue abaixo:

[global]

# Comentário sobre o Servidor.
comment = Servidor

# Host do Servidor.
netbios name = servidor

# Domínio que está sendo criado.
workgroup = placeredes

# Faz com que o usuário seja obrigado a autenticar no domínio diferente do (share) que seria apenas um compartilhamento.
security = user

# Faz com que as eleições sejam bem sucedidas.
os level = 100

# Aceita logon de clientes.
domain logons = yes

# Nome do script de logon.
logon script = %U.bat

# Referências do Controlador de domínio.
domain master = yes
local master = yes
preferred master = yes
time Server = yes
# Encriptação de senha para o uso de clientes XP e 2K.
encrypt passwords = yes
keep alive = 20
debug level = 3
log file = /var/log/samba_log.%u

## Com essa linha, não será necessário cadastrar as Estações no SAMBA

add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u

# Configuração de senhas.
passwd program = /usr/bin/passwd %u
passwd chat = *Entre\scom\snova\ssenha:* %n\n*Repita\snova\ssenha:* %n\n
null passwords = no
admin users = @users

# Sincronismo de senhas com as estações. A senha pode ser alterada via windows.
unix password sync = no
socket options = IPTOS_LOWDELAY TCP_NODELAY

# Permissão de acesso para somente sub-redes cadastradas.

hosts allow = 10.0.0.

# Compartilhamentos
[homes]
comment = Pastas dos Usuários
public = no
browseable = no
writeable = yes

[netlogon]
comment = Compartilhamento de Scripts
path = /arquivos/placeredes/netlogon
guest ok = Yes
browseable = no

#### Todos os diretorios tem permissoes por grupos, aqui estão separados por @placeredes (administrador) @diretoria, @departamento e @users
(todos).

[publico]
comment = Diretório Publico
path = /arquivos/placeredes/publico
browseable = yes
writeable = yes
force create mode = 0770
force directory mode = 0770
read only = no
admin users = @users
write list = @users

[tecnico]
comment = Diretório Tecnico
path = /arquivos/placeredes/tecnico
browseable = yes
writeable = yes
force create mode = 0770
force directory mode = 0770
read only = no
admin users = @placeredes @diretoria @tecnico
write list = @placeredes @diretoria @tecnico

[vendas]
comment = Diretório de Vendas
path = /arquivos/placeredes/vendas
browseable = yes
writeable = yes
force create mode = 0770
force directory mode = 0770
read only = no
admin users = @placeredes @diretoria @vendas
write list = @placeredes @diretoria @vendas

Cadastre o usuário root no Samba:

# smbpasswd -a root

Crie as pastas necessárias:

# mkdir /arquivo
# cd /arquivos
# mkdir placeredes
# cd placeredes
# mkdir netlogon
# mkdir publico


Dê as permissões nas pastas criadas:

# chmod 755 /arquivos/placeredes/netlogon
# chmod 755 /arquivos/placeredes/publico


Crie o arquivo netlogon.bat dentro da pasta /arquivos/netlogon com o seguinte conteúdo:

net use P: \\servidor\servidor\publico /yes

    Próxima página

Páginas do artigo
   1. Configuração do Samba - smb.conf
   2. Criar usuários e grupos
   3. Adicionando o Windows no domínio, netlogon e scripts
   4. Ajuste fino na configuração
Outros artigos deste autor

Instalando o Slackware com suporte HT - SMP

Instalando e gerenciando programas no Linux

Blockmail: um filtro de anexos de e-mail

Leitura recomendada

Samba PDC com Debian Squeeze

Linux + Samba como PDC

Linux logando no Domínio NT

Resolução de Nomes (e não IP) no Gerenciador de Arquivos - Linux x Linux

Implementando um servidor de domínio

  
Comentários
[1] Comentário enviado por SuperSlackware em 14/04/2011 - 13:42h

Vlw cara era isso mesmo que eu estava precisando..

Slack na Veia.

(Ô\_!_/Ô)

[2] Comentário enviado por carlosalberto4ti em 15/04/2011 - 09:26h

nao esta sendo possivel baixar o script

[3] Comentário enviado por joao@transjori em 15/04/2011 - 09:52h

Cara!!!!

Simplesmente Fantástico... a solução dos meus problemas.

Abraços

[4] Comentário enviado por butters em 15/04/2011 - 10:47h

Muito obrigado pelos comentários e elogios, mas nada disso seria possivel sem a colaboração das pessoas citadas acima.

carlos007, segue o script na integra:

#!/bin/bash

###
### Marco Driemeyer <marco@titansware.com.br>
### 01/02/2011 - Atualizacao dos scripts de login
###
### Havendo alteracoes deve-se manter os creditos do autor
###


###
### Comentarios sao importantes... eu adoro comentarios...
###


###
### No inicio o script era vaziu...
### Entao foram criadas as funcoes...
###


###
### Funcao que verifica as dependencias
###
VERIFICADEPS()
{
# Limpa a tela
clear

# mostra mensagem
echo "Iniciando a verificacao das dependencias..."

# Verifica se o usuario que esta executando eh root
if [ "$(id -u)" != "0" ]; then
echo "Este script deve ser executado pelo usuario root!"
echo "Cancelando a execucao..."
exit 1 # sai com codigo de erro
fi

# verifica a existencia dos comando necessarios
local DEPENDENCIAS="ls unix2dos cat test"
for i in `echo "$DEPENDENCIAS"`; do
which $i 1>/dev/null 2>/dev/null # manda a saida para o buraco negro
if [ "$?" -ne "0" ]; then
echo "O comando $i nao foi encontrado."
echo "Tente instalar ele usando o yum..."
exit 1 # sai com codigo de erro
fi
done

# Verifica se o diretorio scripts existe
if ! test -d ./scripts ; then
echo "O diretorio scripts nao exite no atual diretorio!"
echo "Crie um diretorio chamado scripts e dentro dele um diretorio com o nome cada grupo."
echo "Dentro do diretorio do grupo crie o bat do grupo chamado script.bat."
echo "No diretorio do grupo crie um arquivo chamado usuarios e dentro dele coloque um usuario por linha."
echo "Apos isso, execute o script novamente!"
exit 1 # sai com codigo de erro
fi

# Verifica os grupos de usuarios
GRUPOS

# Verifica se esta tudo ok com os grupos
VERIFI_GRUPOS

# mostra saida e adiciona linha para dividir
echo "Dependencias verificadas com sucesso!"
echo ""

}


###
### Fucnao que verifica se esta tudo ok com os grupos
###
VERIFI_GRUPOS()
{
for i in `echo $GRUPOS`; do # caminha pelos grupos
if ! test -s ./scripts/$i/script.bat ; then # testa o script
echo "O arquivo ./scripts/$i/script.bat nao existe ou esta vaziu!"
echo "Dentro deste arquivo deve estar o script bat de login do grupo $i."
echo "Corrija isso e execute o script novamente!"
exit 1 # sai com codigo de erro
fi
if ! test -s ./scripts/$i/usuarios ; then # testa os usuarios
echo "O arquivo ./scripts/$i/usuarios nao existe ou esta vaziu!"
echo "Dentro deste arquivo deve estar o nome de cada um dos usuarios (um por linha) do grupo $i."
echo "Corrija isso e execute o script novamente!"
exit 1 # sai com codigo de erro
fi
done
}


###
### Funcao que retorna os grupos
###
GRUPOS()
{
GRUPOS=$(ls ./scripts) # lista os grupos
if test -z "$GRUPOS" ; then # Verifica nao existe nenhum grupo
echo "Nao existe nenhum diretorio de grupo dentro do diretorio scripts!"
echo "Dentro do diretorio scripts crie um diretorio com o nome cada grupo."
echo "Dentro do diretorio do grupo crie o bat do grupo chamado script.bat."
echo "No diretorio do grupo crie um arquivo chamado usuarios e dentro dele coloque um usuario por linha."
echo "Apos isso, execute o script novamente!"
exit 1 # sai com codigo de erro
fi
}


###
### Funcao que copia os bats para os usuarios
###
COPIABATS()
{
# mostra mensagem
echo "Iniciando a copia dos scripts bat de login..."
echo ""

for i in `echo $GRUPOS`; do # caminha pelos grupos
echo "Copiando o script bat de login do grupo $i."
for j in `cat ./scripts/$i/usuarios`; do # Caminha pelos usuarios
echo "Copiando o script de login do usuario $j."
cat ./scripts/$i/script.bat > ./$j.bat # copia com o cat
echo "Convertendo o script de login do usuario $j para o formato DOS."
unix2dos ./$j.bat 1>/dev/null 2>/dev/null # convete para o formato dos e manda a saida para o buraco negro
echo "Pronto!"
done
# linha em branco para dividir os grupos
echo ""
done
}


###
### Depois de criar as funcoes o script nao era mais vaziu, dai foram criadas as chamadas do script...
###

###
### Chama a funcao para verificar as dependencias do script
###
VERIFICADEPS


###
### Chamada da funcao que copia o script de login para cada um dos usuarios
###
COPIABATS

###
### Se tudo der certo sai com codigo de exito
###
exit 0

[5] Comentário enviado por rodrigo.kiyoshi em 18/04/2011 - 11:10h

Parabéns pelo tutorial, muito bom.

Uma dica: na ausência do unix2dos, use o sed.

De:
unix2dos ./$j.bat 1>/dev/null 2>/dev/null # convete para o formato dos e manda a saida para o buraco negro

Para:
sed -i 's/$/\r/' ./$j.bat 1>/dev/null 2>/dev/null # convete para o formato dos e manda a saida para o buraco negro


Abraços.

[6] Comentário enviado por qxada07 em 06/05/2011 - 08:34h

1000°

Parabéns

[7] Comentário enviado por yazanki em 02/02/2013 - 06:01h

Criei duas máquinas virtuais com o vmware. A primeira eu instalei o CentOS e defini duas interfaces pra ele, sendo uma NAT e outra HOST, a host por sua vez esta com o ip 192.168.40.130 q no caso seria a rede interna. A segunda maquina virtual, instalei o Windows XP e defini apenas uma interface sendo ela HOST e coloquei o ip 192.168.40.131. O problema é q não consigo adicioná-la no domínio, alguém poderia me explicar o que poderia está acontecendo???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts