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: 31.761 ]

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 e gerenciando programas no Linux

Blockmail: um filtro de anexos de e-mail

Instalando o Slackware com suporte HT - SMP

Leitura recomendada

Samba + Windows XP (perfil móvel)

Instalando um PDC Samba no Debian

Integração do Servidor Linux Samba com Active Directory do Windows Server

Integrando Servidores Linux no Active Directory com Samba

Evitando acúmulo de arquivos na lixeira do Samba

  
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 [email protected] 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 <[email protected]>
### 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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts