Introdução Através do Samba é possível a integração entre máquinas que possuam sistemas operacionais Linux e Windows. O Samba é um conjunto de aplicações baseadas no protocolo SMB (Server Message Block), o que significa que é possível nos comunicar com toda a rede de PCs que utiliza SMB, tais como: Windows 95, Windows 98, Windows NT 4.0, Windows 2000 e Windows XP. Outros sistemas operacionais que utilizam o protocolo SMB são, entre outros, XENIX-net (SCO UnixWare), IBM LAN Server, e 3COM s 3 + OPEN. As ferramentas Samba, desenvolvidas por Andrew Tridgell, permitem que máquinas Linux compartilhem unidades de disco e impressoras com servidores ou estações Windows. Com o Samba, todas as máquinas Linux de um rede podem ser vistas como uma ou mais pastas lógicas para os usuários de Windows. Uma máquina Windows utilizando TCP/IP e NetBEUI visualiza os recursos do Samba em máquinas Linux da mesma maneira que em uma rede Windows. Com a ferramenta smbfs desenvolvida por Paal-Kr. Engstad e Volker Lendecke, as máquinas Linux podem se conectar aos recursos compartilhados em máquinas Windows (diretórios e impressoras). Um cliente Linux visualiza um servidor de arquivos SMB como um sistema de arquivos Linux. Os procedimentos a seguir foram realizados em um servidor com Linux Fedora Core release 3 (Heidelberg) instalado. Inicialmente vamos verificar se os pacotes do samba estão instalados. Caso não estejam, instale-os através do disco de distribuição ou download de um site. Os pacotes necessários são: samba samba-client samba-common [usuario@localhost ~]$ su rpm -qa grep samba samba-client-3.0.8-0.pre1.3 samba-3.0.8-0.pre1.3 system-config-samba-1.2.21-1 samba-common-3.0.8-0.pre1.3 O pacote samba contém o servidor que disponibiliza recursos do Linux para clientes Windows. Prof. José Buiar buiar@ni.com.br - 1 -
O pacote samba-client permite acessar recursos de servidores Windows a partir da estação Linux. O pacote samba-common contém arquivos comuns aos dois anteriores. Acessando recursos do Windows a partir de uma estação Linux Inicialmente vamos configurar o servidor samba. Verifique se os processos samba estão rodando: service smb status smbd is stopped nmbd is stopped ou ps aux grep mbd Iniciando os processos: service smb start Starting SMB services: [ OK ] Starting NMB services: [ OK ] Conferindo: ps aux grep mbd root 3124 2.0 1.6 10864 2560? Ss 00:32 0:00 smbd -D root 3128 0.1 1.2 8656 2000? Ss 00:32 0:00 nmbd -D root 3131 0.0 1.6 10864 2556? S 00:32 0:00 smbd -D A seguir temos uma descrição dos principais arquivos do samba: smbclient Cliente SMB para máquinas Linux. Permite que uma máquina Linux acesse um servidor SMB através de uma interface tipo FTP. smbstatus Mostra as conexões ativas na máquina local. /etc/samba/smb.conf Arquivo de configuração do Samba. smbmount Monta uma pasta Windows em uma máquina Linux. smbumount Prof. José Buiar buiar@ni.com.br - 2 -
Desmonta um pasta Windows em uma máquina Linux. smbadduser Adiciona usuários no Samba smbpasswd Altera a senha dos usuários do Samba Vamos agora alterar os parâmetros no arquivo smb.conf. As alterações estão mostradas em negrito sendo que em itálico estão comentários sobre o que esta sendo alterado. vi /etc/samba/smb.conf [global] :::::::::::::::::::::::::::::: Definição do novo Workgroup # workgroup = NT-Domain-Name or Workgroup-Name workgroup = B104 Descrição do Servidor # server string is the equivalent of the NT Description field server string = Servidor Samba de Teste SKOL Indicação do arquivo de log, padrão um arquivo por client. Útil para ajudar na resolução de problemas (não conecta p. ex.) # this tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/%m.log Criptorafia de Senhas. Nos sistemas windows 2000 para frente a senha trafega criptografada. Se esta opção não estiver ativa é necessário alterar uma variável do register do Windows 2000 (XP,...) para a senha não trafegar criptografada (não aconselhável). # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd ::::::::::::::: Especificar um diretório comum, neste caso, o /tmp. Note que os comentários foram retirados! # This one is useful for people to share files [tmp] comment = Diretório Temporário path = /tmp read only = no public = yes Agora que o arquivo está preparado, (re)inicie o servidor samba. service smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] Para testar a conexão, a partir de uma maquina Windows, acesse o servidor : Prof. José Buiar buiar@ni.com.br - 3 -
INICIAR -> EXECUTAR -> Abrir: \\10.0.0.1 Se você estiver em uma estação 2000 ou superior, ocorrerá um erro pois é necessário criar o usuário na maquina Linux também na base de dados do samba. Então no servidor Linux: smbpasswd -a teste New SMB password: ****** Retype new SMB password: ****** Added user teste. (não é necessário reiniciar o servidor samba) Tente novamente estabelecer a conexão. Deverá aparecer uma janela indicando as pastas compartilhadas teste (home user) e tmp. Estas pastas podem ser usadas normalmente dentro da estação Windows para armazenamento de arquivos e outras pastas, e estas alterações serão visíveis no servidor Linux e vice-versa. Realize algumas experiências como copiar arquivos no Windows e ver os resultados no Linux. Crie outros mapeamentos de diretórios do servidor Linux como pastas compartilhadas no samba (smb.conf) e veja os resultados. Acessando recursos do Windows a partir de uma estação Linux Para acessar recursos compartilhados do Windows, inicialmente temos que obter um nome de servidor, uma pasta compartilhada, um usuário e uma senha valida. Com isto na estação Linux executamos : (A opção U indica o usuário com o qual queremos fazer o login no Windows) smbclient //10.1.1.8/tmp -U=teste Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.8pre1-0.pre1.3] smb: \> ls. D 0 Tue Mar 1 01:31:19 2005.. D 0 Tue Mar 1 00:17:51 2005 gconfd-root D 0 Mon Feb 28 23:39:50 2005.font-unix DH 0 Tue Mar 1 00:18:48 2005.ICE-unix DH 0 Tue Mar 1 00:17:50 2005.rnd H 1024 Mon Feb 28 19:29:08 2005 passwd 1737 Tue Mar 1 01:10:05 2005 whatis.ov6958 44391 Tue Mar 1 01:37:16 2005 42332 blocks of size 65536. 16583 blocks available smb: \> help? altname archive blocksize cancel Prof. José Buiar buiar@ni.com.br - 4 -
case_sensitive cd chmod chown del dir du exit get hardlink help history lcd link lowercase ls mask md mget mkdir more mput newer open print printmode prompt put pwd q queue quit rd recurse reget rename reput rm rmdir setmode symlink tar tarmode translate vuid logon! smb: \> quit Podemos montar um recurso do Windows em um filesystem do Linux. Veja o exemplo: # mkdir /mnt/exemplo # mount -t smbfs -o username=teste //10.1.1.8/tmp /mnt/exemplo A partir deste ponto podemos acessar normalmente de dentro do Linux os recursos no Windows que estão visíveis no diretório /mnt/exemplo Para desmontar o recurso usamos o comando umount /mnt/exemplo Prof. José Buiar buiar@ni.com.br - 5 -