Neste tutorial, vou compartilhar o procedimento que uso para instalar o Samba 3.6.1 em um servidor Ubuntu 11.10 a partir do código-fonte. Para mais informações, leia a documentação oficial em http://samba.org/samba/docs/man/Samba-HOWTO-Collection/install.html.
Durante este tutorial, vou deixar os erros naturais acontecerem e, para cada erro, vou explicar qual o motivo e como resolve-lo.
Passo 1: Preparação
Confirme a versão do seu servidor Ubuntu, bem como a arquitetura:
$ less /etc/lsb-release
A saída deve ser algo como:
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=11.10 DISTRIB_CODENAME=oneiric DISTRIB_DESCRIPTION="Ubuntu 11.10"
Para verificar a arquitetura:
$ uname -i
A saída do comando deve ser algo como:
i386
Para terminar este passo, crie dois diretórios sob o seu diretório home, para armazenar os pacotes de instalação e o código-fonte a ser compilado. Eu sempre utilizo estes diretórios para armazenar os pacotes de download e os arquivos de código-fonte.
bruno@ubuntu:~$ pwd /home/bruno bruno@ubuntu:~$ mkdir downloads softwares bruno@ubuntu:~$ ls -ltr total 8 drwxrwxr-x 2 bruno bruno 4096 2011-10-14 09:44 softwares drwxrwxr-x 2 bruno bruno 4096 2011-10-14 09:44 downloads bruno@ubuntu:~$
Passo 2: Instalação do make, gcc e autoconf
Para compilar qualquer software a partir do código-fonte, é necessário um conjunto específico de ferramentas. Antes de prosseguir com a instalação, instale os seguintes pacotes, usando o apt-get:
$ sudo apt-get install gcc $ sudo apt-get install g++ $ sudo apt-get install make $ sudo apt-get install autoconf
Passo 3: Download do pacote de instalação
Faça o download do pacote de instalação na página http://samba.org/samba/download/. Selecione o pacote Samba 3.6.1 (gzipped) . Após o download, copie o arquivo para o diretório downloads no seu servidor. Se preferir, você pode fazer o download direto do servidor através do wget:
$ pwd /home/bruno/downloads $ wget http://samba.org/samba/ftp/stable/samba-3.6.1.tar.gz
Se você for bem paranóico, pode verificar a integridade do pacote de download usando o md5sum:
$ md5sum samba-3.6.1.tar.gz 5291717be0734e07dc07b6110e162e87 samba-3.6.1.tar.gz
Altere o diretório de trabalho para o diretório softwares e descompacte o pacote de instalação:
$ pwd /home/bruno $ cd softwares $ tar --extract --gzip --verbose --file ../downloads/samba-3.6.1.tar.gz
Passo 5: Configuração
Altere o diretório de trabalho para samba-3.6.1/source3 e execute o comando abaixo:
$ pwd /home/bruno/softwares/samba-3.6.1/source3 $ ./configure --prefix=/usr/local/samba-3.6.1
O comando acima configura a instalação para o diretório /usr/local/samba-3.6.1. E isto é tudo. Aguarde pacientemente. Se tudo der certo, a última linha da saída do comando de configuração deve ser algo como:
config.status: executing default-1 commands
Passo 6: Compilação
Após o comando de configuração, basta executar o comando de compilação. Normalmente este comando demora um pouco.
$ sudo make
Se tudo der certo, a última linha da saída deve ser algo como:
Linking ../nsswitch/libnss_wins.so.
Passo 7: Instalação
Agora, basta executar o comando abaixo:
$ sudo make install
Se tudo der certo, a última linha da saída deve ser algo como:
============================================================== MO files for pam_winbind are installed. ============================================================== ============================================================== All MO files for Samba are installed. You can use "make uninstall" or "make uninstallmo" to remove them. ==============================================================
Passo 8: Pós-instalação
Beleza, o Samba está instalado. Para finalizar, vamos criar o link simbólico para o diretório de instalação, adicionar o diretório lib do Samba no cache do Vinculador Dinâmico (LDD), criar um arquivo de configuração mínimo e iniciar o samba.
Primeiro, o link simbólico:
$ sudo ln --symbolic /usr/local/samba-3.6.1 /usr/local/samba
Adicione o diretório /usr/local/samba/lib no cache do LDD:
$ sudo echo "/usr/local/samba/lib" > /etc/ld.so.conf.d/samba.conf
Atualize este cache:
$ sudo ldconfig
E confirme se está tudo correto:
$ sudo ldconfig -p |grep samba
Se tudo estiver correto, você verá algumas linhas como:
libwbclient.so (libc6) => /usr/local/samba/lib/libwbclient.so
Para testar, vamos usar um arquivo de configuração mínimo. Por padrão, este arquivo deve se chamar smb.conf e existir dentro do diretório /usr/local/samba. Vamos criá-lo:
$ pwd /usr/local/samba $ vim lib/smb.conf
E adicionar apenas as linhas abaixo:
[global] workgroup = WORKGROUP netbios name = UBUNTU [homes] comment = User home directories browseable = yes writeable = yes
Sempre que criar/alterar um arquivo de configuração, utilize o comando abaixo para testar a síntaxe destes arquivo:
$ /usr/local/samba/bin/testparm
Se tudo estiver correto, a saída será algo como:
Load smb config files from /usr/local/samba-3.6.1/lib/smb.conf Processing section "[homes]" Processing section "[htdocs]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
Agora é só iniciar o Samba. Esta inicialização é simples mas precisa respeitar uma simples regra: Primeiro inicie o nmbd e depois o smbd. Em resumo, o nmbd é responsável por todas as requisições de resolução e registros de nomes NetBIOS. O smbd é responsável por todas as requisições de acesso À serviços (compartilhamentos). Para mais informações, consulte esta página http://samba.org/samba/docs/man/Samba-HOWTO-Collection/install.html#id2552898
$ sudo /usr/local/samba/sbin/nmbd $ sudo /usr/local/samba/sbin/smbd
O Samba está instalando e em execução. Agora é hora de adicionar usuários, novos serviços e até mesmo incrementar sua configuração, usando o Samba como um controlador de domínio por exemplo.
Muito bom este seu tutorial.
Estava penando para instalar o samba com o –prefix e fazer o mesmo funcionar. Com a sua ajuda eu consegui. Muito obrigado e parabéns.
Opa, muito obrigado pelo comentário. A instalação do Samba é bem tranquila e você poder ter um servidor de arquivos rodando em alguns minutos. A complexidade do Samba começa quando você precisa de algo naturalmente complexo, como controladores de domínio, integração com Active Directory, etc.
Ao dar o echo tá dando permissão negada.
o q faço?
Opa, boa noite Fábio e obrigado pelo comentário. Eu esqueci de especificar que esses comandos também devem ser executados como o super-usuário, utilizando o comando sudo. Portanto, adicione o comando sudo antes dos comandos “echo” e “ldconfig”. Aproveitei e atualizei o tutorial também, corrigindo este erro.
:)
como sou iniciante em linux, fiz a pergunta antes de tentar hehe, mas já entrei em modo super usuario e mesmo assim não tive sucesso, mas obrigado pela rápida resposta.
O arquivo de configuração do samba não vai pra pasta lib devo estar errando em algum passo.
Vou tentar novamente agora, pois tentei instalar o samba4 e não consigo q os usuarios modifiquem o conteudo da pasta compartilhada. Removi e vou seguir seu tuto novamente
e ver se consigo desta vez. rsrs
Mais uma vez obrigado.
Opa, beleza Fábio… tente fazer do zero… se não der certo poste aqui suas dúvidas… de preferência uma de cada vez… rsrs
Obrigado
então consegui fazer um ver o outro mas sem sucesso no acesso a pasta sem ter q logar
nem do windows 7 e nem do 2003.
no windows 7 ainda vejo a pasta compartilhada, mas não tenho acesso sem senha
no 2003 já pede senha logo q entro no ip do samba.
segue meu smb.conf
[global]
netbios name = SRV_Dados_FP
server string = Ubuntu1_11
workgroup = fuscao
os level = 100
preferred master = yes
wins support = yes
usershare owner only = False
map to guest = bad user
guest account = user
security = share
encrypt passwords = false
guest ok = yes
[printers]
comment = Impressoras
print ok = yes
guest ok = yes
path = /var/spool/samba
[dados-rede]
path = /home/dados-rede
browseable = yes
writeable = yes
Opa Fábio, me explique melhor o seu problema, não entendi direito. Vamos por partes e por enquanto não precisa mandar o seu arquivo de configuração.
:)
quero ter acesso ao samba sem ter q logar.
ele me pede senha.
meu querido me perdoe, mas sou iniciante hehe.
o problema estava na permissão da pasta.
atribui leitura e escrita e foi de boa.
como estou substituindo um ubuntu 9 por um novo
gostaria de criar grupos e usuarios para q oa usuarios tenham seus arquivos
protegidos e não visualizados por outros usuarios.
pode me auxiliar nisso? pra não ficar poluindo o seu topico aqui se preferir me add no msn
fabio_g_l@hotmail.com.
muito obrigado por tudo.
Opa, sem problemas Fábio. Definir um bom modelo de usuários, grupos e permissões é um desafio para qualquer administrador de rede. Me envie um email para brunitto@gmail.com que eu te dou algumas direções.
:)
ok te mandei já
Muito bom o post, estamos atualizando nossos sistemas de domínio e foi de suma importância!
Opa, fico feliz em ter ajudado….
Obrigado pelo comentário ;)
Tutorial excelente, redigido de forma sucinta (curto e grosso)…. muito bem Bruno… não mude nunca…
Opa, fico em feliz de saber que o artigo ajudou alguém…
:)