Pessoal esse artigo mostra como configurar um servidor samba como
PDC (Primary Domain Controler), é uma coisa bem simples de se fazer e de suma importância
em uma rede, esse serviço irá proporcionar uma serie de recursos como controle
de acesso a arquivos e diretórios, gerenciamento centralizado, perfil móvel e
uma serie de outros benefícios.
Instalando o Samba
Logo
depois de instalar o Debian GNU/Linux é preciso atualizar o sistema, para isso altere o sources.list colocando as seguintes linhas:
# pico /etc/apt/sources.list
deb http://security.debian.org/ squeeze/updates main contrib
deb-src http://security.debian.org/ squeeze/updates main contrib
deb http://ftp.debian.org/debian/ squeeze-updates main contrib
deb-src http://ftp.debian.org/debian/ squeeze-updates main contrib
deb http://ftp.br.debian.org/debian/ squeeze main contrib
deb-src http://ftp.br.debian.org/debian/ squeeze main contrib
deb-src http://security.debian.org/ squeeze/updates main contrib
deb http://ftp.debian.org/debian/ squeeze-updates main contrib
deb-src http://ftp.debian.org/debian/ squeeze-updates main contrib
deb http://ftp.br.debian.org/debian/ squeeze main contrib
deb-src http://ftp.br.debian.org/debian/ squeeze main contrib
Tecle
(ctrl + o) para salvar e (ctrl + x) para sair.
Depois atualize o sistema:
# aptitude update
Instale as atualizações:
# aptitude upgrade
Com seu sistema atualizado é hora de instalar o Samba:
# aptitude install samba
Depois atualize o sistema:
# aptitude update
Instale as atualizações:
# aptitude upgrade
Com seu sistema atualizado é hora de instalar o Samba:
# aptitude install samba
Alterando o smb.conf
Logo após a instalação do Samba é
hora de alterar o smb.conf, para isso vá até o diretório onde ele foi instalado
e altere o smb.conf. É interessante também você manter o smb.conf original para
isso:
# cd /etc/samba/
Renomeie o smb.conf:
# mv smb.conf smb.conf.orig
Crie um novo smb.conf:
# pico smb.conf
Coloque as seguintes linhas no novo arquivo;
# cd /etc/samba/
Renomeie o smb.conf:
# mv smb.conf smb.conf.orig
Crie um novo smb.conf:
# pico smb.conf
Coloque as seguintes linhas no novo arquivo;
[global]
# aqui você substitua o GUIADOTI pelo nome do seu dominio
workgroup = GUIADOTI
# você substitua o ZEUS pelo nome do seu servidor
netbios name = FENIX
server string = Servidor de Arquivos
domain master = yes
domain logons = yes
# aqui coloquei um script de logon para cada usuario, mas você pode usar um script somente colocando netlogon.bat
logon script = %U.bat
logon home = \\%L\%U\.profiles
logon path= \\%L\profiles\%U
security = user
encrypt passwords = true
enable privileges = yes
passdb backend = tdbsam
# aqui eu proibo a gravação de arquivos .iso e .mp3 no servidor, acredite proibir o .mp3 e outros tipos de musicas ajuda muito.
veto files = /*.iso, *.mp3
prefered master = yes
local master = yes
os level = 100
wins support = yes
panic action = /usr/share/samba/panic-action %d
# ajudar a melhorar a permormace
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
log file = /var/log/samba.log
log level = 1
max log size = 10000
# aqui define os logs que serão gerados, e cria a lixeira do samba
vfs objects = full_audit, recycle
recycle:versions = yes
recycle:repository = /var/samba/trash/%U
recycle:keeptree = yes
recycle:exclude = *.mp3, *.iso
recycle:exclude_dir = tmp, cache
full_audit:success = write, unlink, rename, rmdir, chmod, chown
full_audit:prefix = %u|%S
full_audit:failure = none
full_audit:facility = local5
full_audit:priority = notice
[netlogon]
comment = servico de logon
path = /var/samba/netlogon
read only = yes
browseable = no
[profiles]
path = /var/profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700
[homes]
path = /home/%u/profile.pds
valid users = %S
read only = no
create mask = 0700
directory mask = 0700
browseable = no
[lixeira]
path = /var/samba/trash/%U
writable = yes
create mask = 0700
directory mask = 0700
browseable = yes
[arquivos]
path = /arquivos
browseable = yes
writable = yes
valid users = +geral
write list = +geral
Tecle (ctrl + o) para salvar e (ctrl + x) para sair.
# aqui você substitua o GUIADOTI pelo nome do seu dominio
workgroup = GUIADOTI
# você substitua o ZEUS pelo nome do seu servidor
netbios name = FENIX
server string = Servidor de Arquivos
domain master = yes
domain logons = yes
# aqui coloquei um script de logon para cada usuario, mas você pode usar um script somente colocando netlogon.bat
logon script = %U.bat
logon home = \\%L\%U\.profiles
logon path= \\%L\profiles\%U
security = user
encrypt passwords = true
enable privileges = yes
passdb backend = tdbsam
# aqui eu proibo a gravação de arquivos .iso e .mp3 no servidor, acredite proibir o .mp3 e outros tipos de musicas ajuda muito.
veto files = /*.iso, *.mp3
prefered master = yes
local master = yes
os level = 100
wins support = yes
panic action = /usr/share/samba/panic-action %d
# ajudar a melhorar a permormace
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
log file = /var/log/samba.log
log level = 1
max log size = 10000
# aqui define os logs que serão gerados, e cria a lixeira do samba
vfs objects = full_audit, recycle
recycle:versions = yes
recycle:repository = /var/samba/trash/%U
recycle:keeptree = yes
recycle:exclude = *.mp3, *.iso
recycle:exclude_dir = tmp, cache
full_audit:success = write, unlink, rename, rmdir, chmod, chown
full_audit:prefix = %u|%S
full_audit:failure = none
full_audit:facility = local5
full_audit:priority = notice
[netlogon]
comment = servico de logon
path = /var/samba/netlogon
read only = yes
browseable = no
[profiles]
path = /var/profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700
[homes]
path = /home/%u/profile.pds
valid users = %S
read only = no
create mask = 0700
directory mask = 0700
browseable = no
[lixeira]
path = /var/samba/trash/%U
writable = yes
create mask = 0700
directory mask = 0700
browseable = yes
[arquivos]
path = /arquivos
browseable = yes
writable = yes
valid users = +geral
write list = +geral
Tecle (ctrl + o) para salvar e (ctrl + x) para sair.
Criando e configurando
usuarios e diretórios
Bem pessoal, depois de alterar o smb.conf é hora de
criar os usuários, grupos e diretórios.
Antes de começar a configuração, liste todos os usuários da rede dividindo por setores que serão os grupos.
O diretório skel é o "molde" para criação de usuários do Linux, então vamos criar a pasta profile.pds para servir de padrão.
Criar a pasta profile.pds no skel:
# cd /etc/skel
# mkdir profile.pds
# chmod 775 profile.pds/
É muito interessante também criar um grupo geral para adicionar todos os usuários do domínio.
Criar o grupo geral:
# groupadd geral
Agora vamos criar a pasta samba e a netlogon:
# cd /var
# mkdir samba
# chmod 775 samba/
# chown root:geral samba/
# cd samba/
# mkdir netlogon
# chmod 775 netlogon/
# chown root:geral netlogon/
Agora vamos criar a pasta trash que será a lixeira do Samba:
# cd /var/samba/
# mkdir trash
# chmod -R 775 trash/
# chown root:geral trash/
Agora é hora de adicionar os usuários no sistema e no Samba, aqui como teste a hierarquia é a seguinte:
GERAL:
RH
|
COMPRAS
|
FINANCEIRO
|
QUALIDADE
|
maria
|
joao
|
rafael
|
jose
|
felipe
|
marcelo
|
diogo
|
amanda
|
Lembrando que os setores serão os grupos criados e todos sem exceção pertencerão ao grupo GERAL.
Bem, vamos criar os usuários, mão na massa.
Lembrando que a senha tem que ser a mesma para o sistema e para o Samba.
Adiciona usuário no sistema:
# adduser [usuario]
Adiciona usuário no Samba:
# smbpasswd -a [usuario]
Não podemos esquecer de adicionar o root no Samba também (com a mesma senha do sistema):
# smbpasswd -a root
Agora vamos criar os grupos que são os setores:
# groupadd rh compras financeiro qualidade
Agora temos que adicionar os usuários ao seu determinado grupo:
# adduser maria rh
# adduser felipe rh
# adduser joao compras
e assim por diante...
Lopo apos vamos cadastrar TODOS os usuários ao grupo geral:
# adduser [usuario] geral
Depois do trabalho maçante de
cadastrar os usuários no sistema e no Samba, é hora de cadastrar as contas de
máquina, você também pode usar um script automático, mas sinceramente gosto de
criar conta por conta, pois já tive um problema com esses scripts automáticos,
mas fique a vontade para escolher.
Pra isso é preciso adicionar a linha /bin/false ao arquivo /etc/shells:
# pico /etc/shells
E insira no final do arquivo:
Pra isso é preciso adicionar a linha /bin/false ao arquivo /etc/shells:
# pico /etc/shells
E insira no final do arquivo:
/bin/false
Crie o grupo de máquinas:
# groupadd maquinas
Adicionar as contas de máquinas:
# useradd -g maquinas -d /dev/null -s /bin/false maquina$
# passwd -l maquina$
# smbpasswd -a -m maquina
Crie a pasta profiles, nela que ficarão os arquivos do usuário, área de trabalho, meus documentos etc.
# cd /var
# mkdir profiles
# chmod 1777 profiles/
Crie a pasta para compartilhamento:
# cd /
# mkdir arquivos
# chmod 775 arquivos/
# chown root:geral arquivos/
# mkdir rh
# cd /arquivos/rh
# chmod 770 rh/
# chown root:rh rh/
# mkdir compras
# cd /arquivos/compras
# chmod 770 compras/
# chown root:compras compras/
# mkdir financeiro
# cd /arquivos/financeiro
# chmod 770 financeiro/
# chown root:financeiro financeiro/
# mkdir qualidade
# cd /arquivos/qualidade
# chmod 770 qualidade
# chown root:qualidade qualidade/
Agora basta criar os scripts de logon:
# cd /var/samba/netlogon/
# pico usuario.bat
net use X: \\ZEUS\arquivos
net use L: \\ZEUS\lixeira
net use L: \\ZEUS\lixeira
# chmod 775 usuario.bat
Troca de senha automática
Você pode determinar o
tempo em que a senha do usuario irá expirar:
# pdbedit -i smbpasswd -e tdbsam
O tempo é em segundos, 60x60x24x42, assim a senha irá expirar em 42 dias:
# pdbedit -P "maximum password age" -C 3628800
# pdbedit -Lv -u usuario
Pronto.
Espero que esse tutorial seja útil a todos, qualquer dúvida é só deixar um comentário para discutir.
# pdbedit -i smbpasswd -e tdbsam
O tempo é em segundos, 60x60x24x42, assim a senha irá expirar em 42 dias:
# pdbedit -P "maximum password age" -C 3628800
# pdbedit -Lv -u usuario
Pronto.
Espero que esse tutorial seja útil a todos, qualquer dúvida é só deixar um comentário para discutir.
Amigo muito bom seu artigo ! Parabens !
ResponderExcluirSó fiquei com uma dúvida , nos testes que eu fiz, o usuário da área financeira consegue apagar a pasta "financeiro" se ele quiser... tem como eu bloquear isso sem que o usuário fique sem acesso as modificações dos arquivos na pasta ?
Att rafaeç
Rafael pode sim, você pode dar permissão de somente leitura na pasta financeiro e forçar as permissões dos arquivos criados dentro desse diretório, use o comando abaixo para mudar a permissão:
ResponderExcluir# chmod 750 /arquivos/financeiro
# chown root:financeiro /arquivos/financeiro
e adicione a sessão abaixo em seu smb.conf caso ainda não tenha feito.
[financeiro]
path = /arquivos/financeiro
browseable = yes
writable = yes
valid users = +financeiro
write list = +financeiro
create mask = 0777
directory mask = 0777
as duas ultimas linhas definem que os arquivos modificados ou criados terão acesso para todos. Assim só entrará no diretório financeiro quem tiver dentro do grupo financeiro e todos os arquivos la dentro terão permissão total.
Obs: Não esqueça de adicionar os usuários dentro do grupo financeiro.
Ricardo obrigado pelo retorno !
ExcluirMas não funcionou ... o usuário ainda consegue entrar em [arquivos] e excluir a pasta financeiro... porem a diferença é que agora ele não consegue editar os arquivos do financeiro...
Mais uma dúvida se não for incomodar , qual a finalidade de ter o compartilhamento
[arquivos](que contem financeiro , compras , rh, etc) dentro do samba? já que eu vou ter o compartilhamento de cada área para seu respectivo grupo ex : usuario joao do financeiro tem o compartilhamento[financeiro], e tambem tem o compartilhamento [arquivos] onde tem a pasta financeiro novamente... entendeu ?
Rafael no exemplo do post eu deixei somente o compartilhamento arquivos, mas no caso se tu for criar um compartilhamento para cada setor não tem a necessidade de deixar o compartilhamento arquivos, deixe só os compartilhamentos de cada setor, e quanto ao problema de apagar a pasta deve estar avendo algum mal entendido, pois se você setar a permissão 750 na pasta e dono root com grupo financeiro os usuários do grupo financeiro só terão permissão de ler a pasta, se ele tentar apagar vai dar erro.
ResponderExcluirE aí Ricardo Galossi blz?
ResponderExcluircara, é o seguinte, estou com uma pequena duvida, o servidor samba já foi instalado, tudo virtualizado (VIRTUALBOX).. o arquivo smb.conf configurado, só queria que vc desse uma olhada no meu smb.conf, estou com duvida onde devo alterar para fazer os compartilhamentos:
Versão do Ubuntu 12.10.
####smb.conf comentado####
### inicio da sessão global ###
[global]
#Nome do dominio ou grupo de trabalho
workgroup = betulla.com
#Nome que será visivel na rede
netbios name = servidor
#Nome e comentario do servidor na rede
server string = Samba PDC
#Definição como controlador de dominio sim/não
domain master = yes
#Primeiro servidor a responder na rede
preferred master = yes
local master = yes
#Login no dominio
domain logons = yes
##Descomente a linha abaixo para add usuario maquina automaticamente
##Lembrando que essa linha foi testada apenas no ubuntu 10.04##
add machine script = /usr/sbin/useradd -s /bin/false -d /var/lib/nobody %u
##Descomenta linha abaixo para inserir usuario maquina no samba automaticamente
#Lembre-se que essa linha foi testa apenas no debian##
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos ""%u
#essa linha indica que os usuarios vao utilizar script de logon
#muito utilizado para mapeamentos e etc
logon script = netlogon.bat
# essas linhas abaixo vamos criar um perfil
#%L indica o nome do servidor, %U o nome do usuario que fez o logon
#e mapeia o usuario # \\nomeservidor\profiles\usuario
logon home = \\%L\%U\.profiles
#essa linha abaixo mapeia \\nomeservidor\profiles\usuario
logon path = \\%L\profiles\%U
#exige altenticação para acesso ao domÃnio e compartilhamentos
security = user
#Aa senhas serão criptografadas
encrypt passwords = yes
#Quanto maior for o valor, maior será o servidor na rede
os level = 100
## Definição de pastas e compartilhamentos ##
[netlogon]
##comentário da pasta
comment = Serviço de logon
##caminho da pasta
path = /var/samba/netlogon
##Visivel na rede
guest ok = yes
##Não acessivel via browser
browseable = no
[homes]
comment = directorio home
##Valido apenas para usuarios cadastrados
valid users = %S
##visivel na rede
guest ok = yes
## Não acessivel via browser
browseable = no
[profiles]
## Caminho da pasta
path = /var/profiles
## Gravavel
writeable = yes
## Não acessivel via browser
browseable = no
## Permissão apenas para o dono
create mask = 0600
##Permissão apenas para o dono
directory mask = 0700
[arquivos]
#compartilhamento para todos os usuarios da rede
comment = compartilhamento padrao
#caminho da pasta
path = /mnt/arquivos
#tipo de acesso como publico
public = yes
#compartilhamento visivel a todos
browseable = yes
#Permite gravar
writable = yes
# somente leitura sim ou não
read only = no
# tera permissão rxw somente para o root
create mask = 0700
# mascara que sera criada os diretorios
directory mask = 0700
instalei uma maquina cliente (XP) na VM, ingressei a mesma no domínio (betulla.com), está tudo funcionando, porem gostaria de fazer algumas mudanças tipo:
Cadastrei o usuário maria e ingressei a mesma ao domínio (betulla.com), conforme mostra a foto abaixo:
http://img11.imageshack.us/img11/7969/linuxmd.jpg
Quero criar alguns grupos e usuários e dar as permissões para as devidas pastas:
Exemplo:
As pastas e arquivos do setor (RH) só quem vai acessar é (João, Maria, Letícia, Edvan e Jéssica).
As pastas e arquivos do setor (COMPRAS) só quem vai acessar é (Pedro, Diego, Walber, Willian e Polyana).
As pastas e arquivos do setor (PRESTAÇÃO DE COMPRAS) só quem vai acessar é (George, Francisco, Wallan, Antonio e Vinicius).
É preciso modificar meu smb.conf?
cadastro os usuários e grupos na /home mesmo?
Edvan no artigo acima mostro o passo a passo de como criar as restrições por grupos, é só tu dar uma olhada e testar.
ResponderExcluirEntão amigo, meu smb.conf é diferente do seu, por isso que perguntei, e no vivaolinux vou postou as configurações do seu smb.conf diferente daqui do blog, daí fiquei confuso..heheh.
ExcluirVeja:
[arquivos]
path = /arquivos
browseable = yes
writable = yes
valid users = +geral
write list = +geral
[rh]
path = /arquivos/rh
browseable = yes
writable = yes
valid users = +rh
write list = +rh
[compras]
path = /arquivos/compras
browseable = yes
writable = yes
valid users = +compras
write list = +compras
[financeiro]
path = /arquivos/financeiro
browseable = yes
writable = yes
valid users = +financeiro
write list = +financeiro
[qualidade]
path = /arquivos/qualidade
browseable = yes
writable = yes
valid users = +qualidade
write list = +qualidade
Este comentário foi removido pelo autor.
ResponderExcluirNo seu artigo do VOL parei aqui:
ResponderExcluiruseradd -g maquinas -d /dev/null -s /bin/false maquina$
# passwd -l maquina$
# smbpasswd -a -m maquina
Pois o comando passwd -l maquina$ não deu certo, veja a imagem logo abaixo:
http://img96.imageshack.us/img96/1148/linuxxp.jpg
Amigo voce tem que colocar o nome na sua máquina e não máquina como esta no exemplo, um outro exemplo seria:
ResponderExcluir# useradd -g maquinas -d /dev/null -s /bin/false pcmaria$
# passwd -l pcmaria$
# smbpasswd -a -m pcmaria
ou também voce pode adicionar essa linha em seu smb.conf para não precisar criar as contas de máquina na mão:
add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
Blz, adicionei esse script ao meu smb.conf. vou terminar de fazer os procedimentos, qualquer coisa posto aqui ou no VOL mesmo.
ResponderExcluirBlz Ricardo, creio que deu tudo certo.
ResponderExcluirAs pastas para compartilhamento são essas abaixo:
# cd /
# mkdir arquivos
# chmod 775 arquivos/
# chown root:geral arquivos/
# cd /arquivos/rh
# mkdir rh
# chmod 770 rh/
# chown root:rh rh/
# cd /arquivos/compras
# mkdir compras
# chmod 770 compras/
# chown root:compras compras/
# cd /arquivos/financeiro
# mkdir financeiro
# chmod 770 financeiro/
# chown root:financeiro financeiro/
# cd /arquivos/pagamento
# mkdir pagamento
# chmod 770 pagamento
# chown root:pagamento pagamento/
Por exemplo:
O usuário vania tem acesso ao RH, conforme mostra a foto abaixo, o resto das pastas que aparece no compartilhamento ela nao tem permissão de acesso..
veja: http://img5.imageshack.us/img5/4297/servidorsambavirtualiza.jpg
Quando acesso meu computador aparece o nome vania mapeado, mais nao contem nada dentro, deve ser para ela ir salvando os arquivos, se ela criar uma pasta lá, automaticamente vai para aqui:
veja: http://img5.imageshack.us/img5/2849/servidorsambavirtualizai.jpg
Veja: http://img16.imageshack.us/img16/4297/servidorsambavirtualiza.jpg
Veja: http://img685.imageshack.us/img685/4297/servidorsambavirtualiza.jpg
P.S: Creio que está tudo certo, entrei no domínio com o usuário vania, vou testar os outros usuários depois.
Sr Ricardo estou com duvida no cadastramento de maquinas, para que eu possa finalizar a configuração do servidor.
ResponderExcluiressas maquinas é para ser cadastrada no terminal conforme os comandos que você deixou acima.
e que nome eu daria para essas maquinas.
aguardo retorno
fiz exatamente conforme o guia explicou mas na hora de logar no windowns com o usuario e senha, aparece a mensagem Erro durante a tentativa de ingresso no dominio "GUIADOTI" o dominio espeficado não existe ou não pode ser contatado
ResponderExcluir