fbpixel
Etiquetas: ,

É 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,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get update && sudo apt-get install samba -y
sudo apt-get update && sudo apt-get install samba -y
sudo apt-get update && sudo apt-get install samba -y

Verificar versão

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
smbd --version
smbd --version
 smbd --version

Antes de configurar, verifique se o serviço Samba está desativado

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl stop smbd
sudo systemctl stop smbd
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/samba/smb.conf
sudo nano /etc/samba/smb.conf
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[smbSharedFolder]
comment= Folder Shared by Samba Server
path = /home/<USERNAME>/smbSharedFolder
public = yes
read only = no
[smbSharedFolder] comment= Folder Shared by Samba Server path = /home/<USERNAME>/smbSharedFolder public = yes read only = no
[smbSharedFolder]
comment= Folder Shared by Samba Server
path = /home/<USERNAME>/smbSharedFolder
public = yes
read only = no

Reiniciar o serviço Samba

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl restart smbd
sudo systemctl restart smbd
sudo systemctl restart smbd

Para verificar o estado do serviço e se não existem erros no ficheiro de configuração

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl status smbd
sudo systemctl status smbd
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo pbdedit -L -v
sudo pbdedit -L -v
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
hostname -I
hostname -I
hostname -I

No Explorador do Windows, introduza o endereço IP da máquina seguido do nome da pasta \\.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
\\192.168.1.95\smbSharedFolder
\\192.168.1.95\smbSharedFolder
\\192.168.1.95\smbSharedFolder
samba-access-folder-windows Criar uma pasta partilhada com o Samba em Linux

Também é possível aceder ao ficheiro através de um navegador Web

samba-access-folder-browser Criar uma pasta partilhada com o Samba em Linux

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).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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
[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
[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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl restart smbd
sudo systemctl restart smbd
sudo systemctl restart smbd

Para encontrar o ficheiro de registo a analisar

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls /var/log/samba/
ls /var/log/samba/
ls /var/log/samba/

Para ler o ficheiro de registo

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cat /var/log/samba/log.<IP_CLIENT>
cat /var/log/samba/log.<IP_CLIENT>
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
hostname
hostname
hostname

No

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/hosts
sudo nano /etc/hosts
sudo nano /etc/hosts
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
127.0.0.1 localhost
127.0.1.1 MyMachine
192.168.1.95 MyMachine
127.0.0.1 localhost 127.0.1.1 MyMachine 192.168.1.95 MyMachine
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

samba-access-folder-windows-alias Criar uma pasta partilhada com o Samba em Linux

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

windows-add-network Criar uma pasta partilhada com o Samba em Linux

No campo especificado, o endereço da pasta partilhada

\MinhaMáquina\smbSharedFolder

windows-network-shared-folder-samba-configure Criar uma pasta partilhada com o Samba em Linux

Agora pode aceder à sua pasta partilhada diretamente a partir do seu browser do Windows.

windows-network-shared-folder-samba Criar uma pasta partilhada com o Samba em Linux

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano install_samba.sh
chmod +x install_samba.sh
sudo ./install_samba.sh
sudo nano install_samba.sh chmod +x install_samba.sh sudo ./install_samba.sh
sudo nano install_samba.sh
chmod +x install_samba.sh
sudo ./install_samba.sh
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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 ------------------------------------------------------
#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 ------------------------------------------------------
#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.

Fontes