É possível aceder a uma pasta numa máquina remota instalando um servidor Samba em Linux. Este servidor permite o acesso a uma determinada pasta de ficheiros a partir de qualquer máquina ligada à mesma rede.
Instalando o Samba
Para instalar o Samba,
sudo apt-get update && sudo apt-get install samba -y
Verificar versão
smbd --version
Antes de configurar, verifique se o serviço Samba está desativado
sudo systemctl stop smbd
Configurar o Samba no Linux
Para partilhar uma pasta de forma segura, é necessário introduzir determinadas informações no ficheiro de configuração
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Para modificar o ficheiro de configuração, pode utilizar um editor de texto ou o nano no terminal
sudo nano /etc/samba/smb.conf
A informação que tem de introduzir é o caminho, que é o endereço da pasta a ser partilhada. Não se esqueça de substituir pelo nome do utilizador. Para obter o nome do utilizador, introduza o comando whoami
[smbSharedFolder] comment= Folder Shared by Samba Server path = /home/<USERNAME>/smbSharedFolder public = yes read only = no
Reiniciar o serviço Samba
sudo systemctl restart smbd
Para verificar o estado do serviço e se não existem erros no ficheiro de configuração
sudo systemctl status smbd
N.B.: Pode criar várias pastas partilhadas adicionando um bloco ou secção de configuração (começando por [sharefolder]) à pasta
Criar e modificar direitos de utilizador
Para aceder à pasta partilhada Samba com a sua conta de utilizador, é necessário adicioná-la ao grupo Samba
sudo smbpasswd -a
O sistema pede-lhe então que introduza e confirme a palavra-passe do utilizador.
Verificar a lista de utilizadores
sudo pbdedit -L -v
Aceder à pasta Samba a partir de uma máquina remota
Para aceder à pasta a partir de outro computador, é necessário saber o endereço IP do computador no qual o Samba está instalado. Para obter o endereço IP, introduza o seguinte comando a partir de um terminal
hostname -I
No Explorador do Windows, introduza o endereço IP da máquina seguido do nome da pasta \\.
\\192.168.1.95\smbSharedFolder
Também é possível aceder ao ficheiro através de um navegador Web
Adicionar um ficheiro de registo
Não é necessário, mas aconselho-o a adicionar um ficheiro de registo para que possa monitorizar o que está a acontecer no Samba, especialmente em caso de erro.
No
Ajouter une section “global” au début du fichier et ajourer la ligne log file. Le paramètre “%m” spécifie de créer un fichier log pour chaque machine qui se connecte au dossier partagé Samba. Le paramètre log level à 1 permet d’activer le logging (defaut à 0).
[global] log file = /var/log/samba/log.%m log level = 1 [smbSharedFolder] comment= Folder Shared by Samba Server path = /home/<USERNAME>/smbSharedFolder public = yes read only = no
Utilize o atalho Ctrl+X para guardar e fechar o ficheiro e, em seguida, reinicie o serviço.
sudo systemctl restart smbd
Para encontrar o ficheiro de registo a analisar
ls /var/log/samba/
Para ler o ficheiro de registo
cat /var/log/samba/log.<IP_CLIENT>
Bónus: Aceder à pasta utilizando um Alias
Em vez de utilizar o endereço IP, é possível definir um alias para a máquina. Para isso, vamos encontrar o nome da máquina e modificar o ficheiro
Para encontrar o nome da máquina
hostname
No
sudo nano /etc/hosts
127.0.0.1 localhost 127.0.1.1 MyMachine 192.168.1.95 MyMachine
Para aceder à pasta, introduza o seguinte comando no Explorador do Windows
\MinhaMáquina\smbSharedFolder
Uma vez definido o alias, pode criar uma localização de rede no seu computador
Na pasta Este PC, clique com o botão direito do rato e seleccione Adicionar uma localização de rede
No campo especificado, o endereço da pasta partilhada
\MinhaMáquina\smbSharedFolder
Agora pode aceder à sua pasta partilhada diretamente a partir do seu browser do Windows.
Ficheiro de instalação e configuração do Samba (Utilizadores avançados)
Para facilitar a vida, pode criar um ficheiro de instalação Samba, que pode ser executado em todas as suas instalações Linux.
Não se esqueça de atualizar os nomes FOLDERNAME e USER de acordo com as suas necessidades
sudo nano install_samba.sh chmod +x install_samba.sh sudo ./install_samba.sh
#folder user name FOLDERNAME=sambashare USER=pi #install samba sudo apt-get update && sudo apt-get install samba -y sudo systemctl stop smbd #get machine info HOSTNAME=$(hostname) IPADDR=$(hostname -I | cut -f1 -d' ') SMBVER=$(smbd --version) #create samba folder mkdir $FOLDERNAME #save conf file for later sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak #write conf file #echo > /etc/samba/smb.conf printf "[global] #log file = /var/log/samba/log log level = 1 [$FOLDERNAME] comment= Folder Shared by Samba Server path = /home/$USER/$FOLDERNAME public = yes read only = no " > /etc/samba/smb.conf #create host alias (optional) echo $IPADDR $HOSTNAME >> /etc/hosts #add user sudo smbpasswd -a $USER #start service sudo systemctl restart smbd #display result echo --------------------- SUCCESS ----------------------- echo SAMBA $SMBVER was installed correcly echo you can access your folder with echo \\\\$IPADDR\\$FOLDERNAME echo or echo \\\\$HOSTNAME\\$FOLDERNAME echo with username $USER echo ------------------------------------------------------
N.B.: Se este ficheiro não for executado corretamente após copiar e colar, pode tentar utilizar o dos2unix para converter o ficheiro
Aplicações
- Aceda aos seus ficheiros a partir de qualquer lugar com o reencaminhamento de portas
- Carregar ficheiros de uma máquina para outra na mesma rede
Por exemplo, utilizo-o para transferir ficheiros do meu PC Windows para o meu PC Linux, que gere a minha máquina de gravação a laser.