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