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.
[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!
[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
[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.
[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: