Samba para Linux acessar Windows e vice-versa

Publicado por Xerxes em 20/11/2008

[ Hits: 125.783 ]

 


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

Abrindo Gmail com Konqueror

Restaurando o .bashrc do Ubuntu

Alias para atualizar apt e flatpak

Instalar (compilar) CAVA no Ubuntu (sem PPA)

Como instalar OpenOffice Apache (DEB)

Leitura recomendada

Criando imagem ISO de Pendrive

Zenoss - Configurando estações Windows

Não faça como a Secretaria da Fazenda de São Paulo

Fazer o leitor de cd ejetar a bandeja

AssaultCube - FPS Multiplataforma para GNU/Linux

  

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