Samba para Linux acessar Windows e vice-versa

Publicado por Xerxes em 20/11/2008

[ Hits: 125.593 ]

 


Samba para Linux acessar Windows e vice-versa



Samba no Linux
O objetivo dessa dica é disponibilizar uma configuração muito simples do Samba que vai permitir que usuários no Linux acessem um diretório do Windows e que usuários no Windows acessem um diretório do Linux.

Muito útil para transferir arquivos e fazer backups.

A dica foi testada numa pequena rede com um Slackware Linux 12.1 e com 3 máquinas Windows XP Professional, tudo em um roteador.

Se você não tem o Samba no seu Linux, instale-o.

Para distribuições baseadas em Debian Linux, um simples:

# apt-get --install samba

deve resolver.

O Slackware padrão vem com o Samba instalado.

Antes de tudo, crie um arquivo com o nome de smb.conf com o seu editor de texto preferido. Exemplo:

# mousepad smb.conf

e cole nesse arquivo o conteúdo abaixo:

[global]
workgroup = MSHOME
server string = Servidor Linux
security = share
hosts allow = ALL
load printers = no
log file = /var/log/samba.%m
max log size = 50
socket options = TCP_NODELAY
interfaces = XXX.XXX.X.X
local master = no
domain master = no
preferred master = no
dns proxy = no
encrypt passwords = yes
read only = no
netbios name = slackware
read only = no
[rede]
path = /home/rede
guest ok = yes
public = yes

Modifique o interfaces = XXX.XXX.X.X colocando o endereço IP da sua máquina Linux ao invés de XXX.XXX.X.X.

Para ver o seu IP use o comando:

# ifconfig

Salve o arquivo em /etc/samba/.

Perceba que o grupo de trabalho escolhido foi o MSHOME, o padrão do Windows. Todas as máquinas Windows devem estar no mesmo grupo.

Agora você precisará criar dois novos diretório. Um com o nome rede em /home e outro também com o nome rede em /mnt. Os comandos são:

# mkdir /home/rede
# mkdir /mnt/rede


O primeiro será o diretório do Linux que será compartilhado e o segundo será o ponto de montagem que receberá o conteúdo do diretório compartilhado do Windows.

Pronto, a parte mais difícil foi feita. Agora para que o Samba seja executado ele precisa se tornar executável. Use o comando:

# chmod +x /etc/rc.d/rc.samba

Depois de tornar o Samba executável, inicie-o com o seguinte comando:

# /etc/rc.d/rc.samba start

Se quiser parar o Samba use o comando:

# /etc/rc.d/rc.samba stop

Se o seu rc.samba fica em outro lugar, você poderá encontrá-lo com o comando:

# find / -name rc.samba

OK!

Tudo deve estar funcionando agora. Em Locais de Redes do Windows, deve aparecer dentro do grupo MSHOME o atalho para o diretório do Linux. Agora, como acessar o Windows pelo Linux? Simples, basta montar o diretório com o comando:

# mount -t cifs -o guest //IP/pasta /mnt/rede

IP = ip da máquina Windows
pasta = pasta da máquina Windows que está compartilhada.

Exemplo, aqui eu fiz:

# mount -t cifs -o guest //XXX.XXX.XX.XX/shareddocs /mnt/rede

O XXX.XXX.XX.XX é o IP de uma das minhas máquinas Windows e o shareddocs é o nome da pasta compartilhada do Windows.

Isso fará com que o conteúdo da pasta compartilhada do Windows seja mostrado no diretório /mnt/rede do Linux.

Agora que tudo está configurado, basta executar o Samba quando quiser.

Boa sorte!

Outras dicas deste autor

Usando outros delimitadores em sed

Alterar tempo de animações do Gnome

Intel Graphics Installer no Linux Mint

Abrir arquivos .mht no Firefox

Instalação do Packet Tracer 8 no openSUSE Tumbleweed

Leitura recomendada

Fazendo backup de todas as databases do MySQL

Gimp - Erro: Execution error for 'Screenshot' [Resolvido]

Instalando VMtools em Máquina Virtual

Manual Completo do Ubuntu

Instalando WLan no Compaq Presario C730BR

  

Comentários
[1] Comentário enviado por oliviofarias em 21/11/2008 - 11:44h

Muito obrigado pela dica, me foi muito util.

[2] Comentário enviado por xerxeslins em 21/11/2008 - 16:53h

Que bom, fico feliz! ^^

[3] Comentário enviado por rubens2912 em 26/11/2008 - 15:19h

excelente comentario, eu preciso por senha pra acessar as pastas, como faço???

att

[4] Comentário enviado por xerxeslins em 26/11/2008 - 23:11h

Olá, Rubens!

se você quer que as pastas sejam acessadas com usuário e senha, use:

public = no

(ou invés de yes)

defina tbm os usuários que podem acessar com o parametro "valid users", exemplo:

valid users = joao ana humberto

Porém, amigo, me desculpe não fornecer mais detalhes eu nunca usei dessa forma que você quer, só usei como pública. Também sou iniciante no Linux.

O que eu disse pra ser feito é apenas teoria, nunca testei. Baseei-me nos exemplos que vêm junto com o Slackware. O exemplo diz o seguinte:

# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765

pelo que entendi essa é uma configuração para que apenas mary e fred possam acessar.

espero ter ajudado de alguma forma. desculpe a minha falta de conhecimento. Até mais!

[5] Comentário enviado por sergelli em 11/12/2008 - 14:28h

Uso Mandriva 2009
O arquivo rc.samba não existe aqui.
que fazer?




[6] Comentário enviado por xerxeslins em 11/12/2008 - 14:43h

sergelli,

já usou o comando

# find / -name rc.samba

para procurá-lo em outro lugar?

esse arquivo é padrão e surge após a instalação do samba. No Mandriva ele deve ficar em um lugar diferente do Slackware.

[7] Comentário enviado por halen em 26/12/2008 - 17:28h

Olá, sou novo no Linux e estou usando o Mandriva 2008.

No caso não se usa o apt-get nele até onde eu sei, mas oque eu uso para instalar o samba então.
preciso muito instalar ele.

Obrigado.

[8] Comentário enviado por drilima2010 em 05/03/2009 - 23:41h

meu velho estou tentando migrar de fato para o linux, mas a verdade é que levo o maior pau para fazer esses comandos funcionarem.

fiz tudo conforme está explicando a cima.
abri o terminal fiz login como root executei os comandos, mas na parte que está descrita a baixo eu me perdi:

Agora você precisará criar dois novos diretório. Um com o nome rede em /home e outro também com o nome rede em /mnt. Os comandos são:

# mkdir /home/rede
# mkdir /mnt/rede

como assim criar dois novos diretórios?
é criar duas pastas dentro do caminho /etc/samba/.
enfim estou perdido agora.

[9] Comentário enviado por xerxeslins em 06/03/2009 - 00:06h

Olá amigo,

calma... não se desespere.

Sim, criar diretório é criar pasta. Porém NÃO as crie dentro de /etc/samba.
sabe essa primeira barra -> "/" ?

do /etc/samba,
ou do /home/rede
ou do /mnt/rede

essa primeira barra do início do caminho na verdade não é só um separador, é um diretório, chamado de diretório raiz.

AGORA VAMOS AO QUE INTERESSA

Vou explicar melhor para você, pois eu já precisei de muita ajuda no início e sei como é isso.

Depois de logar como root, como você disse que fez, vem a parte que você não entendeu. O que você tem que fazer agora é o seguinte:

digite o comando abaixo no terminal:

mkdir /home/rede

Pressione ENTER. Pronto. Com isso você já criou um diretório chamado rede, dentro do diretório home, que fica dentro do diretório raiz (a barra).

Agora você digita o próximo comando no terminal:

mkdir /mnt/rede

Após teclar ENTER você terá criado um diretório também chamado rede, mas ele estará dentro do diretório mnt que estará dentro do diretório raiz.

Obs.: a tralha (#) utilizada na dica não faz parte do comando. só é usada para mostrar que o comando está sendo usado pelo super usuário (root). Quando mostrar cifrão ($), trata-se de um comando executado por um usuário sem poderes de super usuário (seu usuário comum).

Agora você pode continuar executando os demais comandos, exatamente como estão listados na dica. Pode copiar e colar no terminal se quiser e teclar ENTER.
Não esqueça que você precisa ter o samba instalado.



Complementando a dica:

Algumas pessoas reclamaram que não foi possível fazer o compartilhamento do diretório Linux para Windows. Dá acesso negado.
Depois se seguir toda a dica, se isso acontecer. Por exemplo: você tentar copiar, mover ou criar um arquivo/diretório no diretório da máquina com Linux e dá acesso negado. Faça o seguinte:

# chmod 777 /home/samba -R

E acrescente ao seu smb.conf o seguinte:

force create mode = 0777
force directory mode = 0777

Deixando-o assim:

[global]
workgroup = MSHOME
server string = Servidor Linux
security = share
hosts allow = ALL
load printers = no
log file = /var/log/samba.%m
max log size = 50
socket options = TCP_NODELAY
interfaces = XXX.XXX.X.X
local master = no
domain master = no
preferred master = no
dns proxy = no
encrypt passwords = yes
read only = no
netbios name = slackware
read only = no
[rede]
path = /home/rede
guest ok = yes
public = yes
force create mode = 0777
force directory mode = 0777

Depois reinicie o samba com o comando:

# sh /etc/rc.d/rc.samba restart

É isso. Qualquer coisa, se eu souber, ajudarei.

Boa sorte.

[10] Comentário enviado por sergelli em 06/03/2009 - 08:59h

Executei como root a linha abaixo:

find / -name rc.samba

e o find não encontrou nada, - Lembrando, uso o Mandriva 2009.

Mas esse não é o problema, pois instalei um NoteBook nesta rede com Win XP e o Samba funcionou normalmente.

O que não está funcionando aqui são dois PCs, um Win95 e outro Win Millenium

Quando uso o protocolo "smbfs" dá o seguinte erro:

mount: unknown filesystem type 'smdfs'

Quando uso o protocolo "cifs" dá o seguinte erro:

mount error 110 = Connection timed out
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)

Meu fstab está assim

//192.198.1.2/C /mnt/winMille user,users,umask=0000,username=xxx,password=xxx 0 0

Se digito:
ping 192.168.1.2 a resposta é ótima.

Tem alguma sugestão?

[11] Comentário enviado por xerxeslins em 06/03/2009 - 23:44h

Desculpe, amigo. Essa eu não sei =/

[12] Comentário enviado por drilima2010 em 07/03/2009 - 11:38h

xerxes valeu pela dica ;)
assim mesmo o erro permaneceu, acho que sei pq.
eu não tenho um servidor instalado não, eu tenho apenas uma rede local em casa com 3 computadores e os que tem o xp se comunicam um com os outros, já o linux eu não consigo nem visualizar a rede.

[13] Comentário enviado por ronneywiller em 06/08/2009 - 11:39h

pessoal como posso fazer pra deixar meu ip da rele eth0 sempre para o ip fixo: 192.168.0.55

pois toda vez que entro no linux o ip ja nao e mais o mesmo e tenho que fazer:

ifconfig eth0 192.168.0.55 netmask 255.255.255.0 para assim funcionar a rede .....


alguem ajuda?

[14] Comentário enviado por amiltoncesar em 21/05/2010 - 01:02h

Tem algum comando no linux q lista todas as pastas compartilhadas em um host com winxp ???

[15] Comentário enviado por Adonai Heringer em 23/12/2010 - 21:25h

O comando "# chmod +x /etc/rc.d/rc.samba" diz que não existe.
Fui a pasta do "etc" e vi que não existia a pasta "rc.d", só existe as pastas "rc0.d", "rc1.d", "rc2.d", "rc3.d", "rc4.d", "rc5.d", "rc6.d" e "rcS.d".
Utilizei o comando "find / -name rc.samba" e nada foi encontrado.

Ja instalei o samba com o comando "apt-get install samba" e utilizo o sistema operacional ubuntu desktop 10.10
Quem puder me ajudar me adicione no msn adonaidp@hotmail e se identifica quando me ver online. Preciso disso o mais rápido possível, pois tenho um simulado em março e preciso estudar mais um monte de coisa. ABRAÇO!

[16] Comentário enviado por xerxeslins em 25/12/2010 - 01:19h

Olá Adonai,

esses diretórios não existem no seu caso porque a dica foi feita com a distribuição Slackware.
no caso do ubuntu eu não sei, mas provavelmente deve ser no menu Locais -> Rede já deve funfar =)

[17] Comentário enviado por nettux em 08/12/2020 - 11:31h

Olá, pessoal!
Creio que deve ser a primeira vez que posto nesse (maravilhoso) site/fórum...
Apesar de usar Linux desde 2005 e tirar dúvidas aqui poucas foram as vezes que participei e por isto peço desculpas.
Mas tenho uma dúvida...
Montei um servidor de arquivos no Debian e configurei o Samba certinho, tanto que nos computadores com Windows conecta, acessa, altera, exclui, tudo exatamente como eu quero, porém os terminais com Linux (Mint) nem conseguem acessar... dá erro:
Via terminal eu acesso assim: sudo smbclient //192.168.10.125/media/usuario/Arquivos
WARNING: The "syslog" option is deprecated
Enter WORKGROUP\root's password:
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
Tentei assim: sudo smbclient -U usuario //192.168.10.125/media/usuario/Arquivos
e ocorre o mesmo erro.
Via navegador (Nautilus ou Nemo) não consigo acessar... não reconhece nem o usuário nem a senha... no Nemo pelo menos eu acesso a pasta pública mas não a pasta compartilhada.
Agradeço quem puder me ajudar.
Grato


[18] Comentário enviado por xerxeslins em 08/12/2020 - 17:31h


[17] Comentário enviado por nettux em 08/12/2020 - 11:31h

Olá, pessoal!
Creio que deve ser a primeira vez que posto nesse (maravilhoso) site/fórum...
Apesar de usar Linux desde 2005 e tirar dúvidas aqui poucas foram as vezes que participei e por isto peço desculpas.
Mas tenho uma dúvida...
Montei um servidor de arquivos no Debian e configurei o Samba certinho, tanto que nos computadores com Windows conecta, acessa, altera, exclui, tudo exatamente como eu quero, porém os terminais com Linux (Mint) nem conseguem acessar... dá erro:
Via terminal eu acesso assim: sudo smbclient //192.168.10.125/media/usuario/Arquivos
WARNING: The "syslog" option is deprecated
Enter WORKGROUP\root's password:
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
Tentei assim: sudo smbclient -U usuario //192.168.10.125/media/usuario/Arquivos
e ocorre o mesmo erro.
Via navegador (Nautilus ou Nemo) não consigo acessar... não reconhece nem o usuário nem a senha... no Nemo pelo menos eu acesso a pasta pública mas não a pasta compartilhada.
Agradeço quem puder me ajudar.
Grato




Há muito tempo não uso o samba. Dê uma olhada no log do samba para ver se tem alguma pista.
Acho que fica neste caminho:

/var/log/samba/log.smbd



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts