Bom, depois de um longo tempo seguimos a série da Rede completa, já configuramos a internet, agora configuraremos o compartilhamento de arquivos.
Neste post mostrarei o compartilhamento de arquivos, ou acesso de arquivos do Linux para o Windows, ou seja acessar arquivos do Windows no Linux.
Depois fazemos ao contrário.
Primeiramente instale o samba
No caso do Arch Linux
pacman -S samba
Isto feito criaremos um usuário no Samba, e este usuário é uma cópia fiel de algum usuário seu no Linux.
Ou seja, eu por exemplo acesso o Linux com meu usuário leonardo. Ele não é o administrador como o root, e tem permissões normais, isto é apenas na sua pasta home.
Antes de tudo é provável que o samba não esteja rodando, então vá para /etc/rc.d/ e rode o daemon samba:
./samba restart.
Então finalmente para adicionar o usuário ao samba
smbpasswd -a leonardo
Lembre-se o nome do usuário tem de ser exatamente o nome do seu usuário no Linux.
Legal agora vá para a pasta /etc/samba. Antes de configurarmos o smb.conf em sí, vamos criar um outro arquivo de controle de usuários.
Dentro da pasta private na pasta samba ou na raiz de samba mesmo, cria um arquivo chamado smbusers com o seguinte conteúdo.
root = administrador
leonardo = Leonardo
Neste arquivo está o mapeamento do seu usuário no Linux correspondente ao usuário Windows que acessará a Linux. Mas esqueçamos isto por enquanto, pois para acessar do Linux para o Windows este arquivo não é necessário, mas crie-o já para adiantarmos o processo.
Bom, por último e mais importante está o nosso smb.conf que é a configuração do samba em só.
Colarei o Meu No fim do Artigo, pois é bem provável que o mesmo polua o post, então você lê o post e no fim tem o smb.conf com as explicações.
Com o SMB.CONF JÁ CONFIGURADO, reinicie o servidor samba.
/etc/rc.d/samba restart
Agora o Servidor já está configurado para acesso do Linux para Windows.
Para você verificar quais pastas estão compartilhadas no Windows utilize o comando
smbclient -L <IP> –user=<USUARIO>
smbclient -L 192.168.0.2 –user=Leonardo
Após digitar a senha você verá todas as pastas compartilhadas da máquina Windows.
Para se conectar efetivamente utilize o comando
smbclient <LOCAL> –user=<USUARIO>
smbclient //192.168.0.2/Documentos-Leonardo –user=Leonardo
Depois da senha você estará logado na pasta, e então se as permissões do Windows permitir você poderá criar, alterar, excluir e fazer tudo mais.
Não vou detalhar os comandos pois digitando help, você os verá, mas saiba que os comandos são os mesmos do prompt do Windows.
Porém, caso as permissões do Windows não permitam você terá como retorno o erro
NT_STATUS_ACCESS_DENIED
Bom, aí bastar ir ao Windows, na pasta que você deseja compartilhar e em compartilhamento avançado escolher o que cada usuário pode ou não fazer com esta pasta.
Bem Simples não?
Dá pra montar também uma pasta de rede assim como você monta um pen-drive veja:
mount.cifs //192.168.0.2/Documentos-Leonardo smb -o user=Leonardo
Veja só, primeiro temos o endereço do compartilhamento depois a pasta que ele deve ser montado, no caso a minha smb e em seguida os parametros.
Tem outra forma de deixar montado porém eu não gosto muito.
Todos sabemos que o arquivo /etc/fstab, não nossos pontos de montagem mais importantes como HDs e etc.
Para que nossa pasta de rede possa estar montada toda vez que ligarmos o PC basta adicionar o samba ao fstab.
Apenas adicione a linha como esta
//192.168.0.2/Documentos-Leonardo smb cifs credentials=/etc/credencial,rw,user,noauto 0 0
O Arquivo /etc/credencial deve ter um conteúdo como este:
username=leonardo
password=senha
Desta forma o fstab busta a senha em outro arquivo para
deixar a coisa mais segura.
Bom, por enquanto é só da parte Linux.
Da parte Windows, como nossa rede está toda configurada devido ao arquivo anterior, o máximo que você terá que fazer é no executar digitar,
\\SAMBA-LINUX\home-leonardo
Caso não vá em Botão Direito em Meu Computador, e ID de Rede configure o Grupo do Seu Computador.
Então deverá funcionar digitando o seu diretório compatilhado no Samba
Lembre-se que você tem que digitar o nome completo do seu compartilhamento, apenas o servidor ele vai der erro de acesso e permissão
Qualquer problema manda aí, pois ajuda todo mundo e configurar esta porcaria é meio chatinho mesmo.
Tá aí o smb.conf comentado, você pode copiar o seu smb.conf default e apenas fazer as modificações para ficar igual o meu, não são muitas.
[global]
# Nome do deste Servidor Samba na Rede
netbios name = Samba-Linux
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
workgroup = LEONARDO-GRUPO
# server string is the equivalent of the NT Description field
server string = Servidor Samba (nbLeonardo-Linux)
# Security mode. Defines in which mode Samba will operate. Possible
# values are share, user, server, domain and ads. Most people will want
# user level security. See the Samba-HOWTO-Collection for details.
# Tipo de Acesso por usuário, isto é, baseado em Login e Senha
security = user
# Arquivo que mapeia os usuários do sistema Linux com o Usuários cadastrados
# no Samba que representa o Windows.
username map = /etc/samba/private/smbusers
# Informa para o Samba user senhas Criptografadas pela rede
encrypt passwords = yes
# Este parametro faz o samba restringir acesso por interface, isto é, somente
# as interfaces que forem informadas no parametro interfaces
bind interfaces only = yes
# Respeitando o parametro acima, o Samba só aceita requisições vindas da eth0
interfaces = eth0
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the “loopback” interface. For more examples of the syntax see
# the smb.conf man page
#Permite só o IP 0.2
hosts allow = 192.168.0.2
# Usuários que possuem acesso ao Samba
# valid users = leonardo
# If you want to automatically load your printer list rather
# than setting them up individually then you’ll need this
load printers = yes
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/samba-log-%m.log
# Put a capping on the size of the log files (in Kb). 1 MB
max log size = 1000
#============================ Share Definitions ==============================
# Mapeia o diretório home do usuário autenticado
#[homes]
# comment = Diretórios do Usuário
# browseable = yes
# writable = yes
[home-leonardo]
comment = Home Leonardo
browseable = yes
writable = yes
available = yes
public = yes
path = /home/leonardo
[USB]
comment = Volumes USB
browseable = yes
writable = yes
path = /media/usb