Es posible acceder a una carpeta de una máquina remota instalando un servidor Samba en Linux. Este servidor permite acceder a una determinada carpeta de archivos desde cualquier máquina conectada a la misma red.
Instalación de Samba
Para instalar Samba,
sudo apt-get update && sudo apt-get install samba -y
Comprobar versión
smbd --version
Antes de configurar, compruebe que el servicio Samba está desactivado
sudo systemctl stop smbd
Configuración de Samba en Linux
Para compartir una carpeta de forma segura, debe introducir cierta información en el archivo de configuración
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Para modificar el archivo de configuración, puede utilizar un editor de texto o nano en el terminal
sudo nano /etc/samba/smb.conf
La información que debe introducir es la ruta, que es la dirección de la carpeta que se va a compartir. No olvide sustituir por el nombre del usuario. Para obtener el nombre de usuario introduzca el comando whoami
[smbSharedFolder] comment= Folder Shared by Samba Server path = /home/<USERNAME>/smbSharedFolder public = yes read only = no
Reinicie el servicio Samba
sudo systemctl restart smbd
Para comprobar el estado del servicio y que no hay errores en el fichero de configuración
sudo systemctl status smbd
N.B.: Puede crear varias carpetas compartidas añadiendo un bloque o sección de configuración (que empiece por [sharefolder]) a la carpeta
Creación y modificación de derechos de usuario
Para acceder a la carpeta compartida Samba con su cuenta de usuario, debe añadirla al grupo Samba
sudo smbpasswd -a
A continuación, el sistema le pedirá que introduzca y confirme la contraseña de usuario.
Comprobar la lista de usuarios
sudo pbdedit -L -v
Acceso a la carpeta Samba desde una máquina remota
Para acceder a la carpeta desde otro ordenador, necesita conocer la dirección IP del ordenador en el que está instalado Samba. Para obtener la dirección IP, introduzca el siguiente comando desde un terminal
hostname -I
En el Explorador de Windows, introduzca la dirección IP del equipo seguida del nombre de la carpeta \<DIRECCIÓN_IP>\.
\\192.168.1.95\smbSharedFolder
También es posible acceder al archivo utilizando un navegador web
Añadir un archivo de registro
No es necesario, pero te aconsejo que añadas un archivo de registro para que puedas controlar lo que ocurre en Samba, especialmente en caso de error.
En el
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
Utiliza la combinación de teclas Ctrl+X para guardar y cerrar el archivo y, a continuación, reinicia el servicio.
sudo systemctl restart smbd
Para buscar el archivo de registro
ls /var/log/samba/
Para leer el archivo de registro
cat /var/log/samba/log.<IP_CLIENT>
Bonus: Accede a la carpeta usando un Alias
En lugar de utilizar la dirección IP, es posible definir un alias para la máquina. Para ello, buscaremos el nombre de la máquina y modificaremos el archivo
Para encontrar el nombre de la máquina
hostname
En el
sudo nano /etc/hosts
127.0.0.1 localhost 127.0.1.1 MyMachine 192.168.1.95 MyMachine
Para acceder a la carpeta, introduzca el siguiente comando en el Explorador de Windows
\MiMáquina CarpetaCompartida smb
Una vez definido el alias, puede crear una ubicación de red en su ordenador
En la carpeta Este PC, haga clic con el botón derecho y seleccione Añadir una ubicación de red
En el campo especificado la dirección de la carpeta compartida
\MiMáquina CarpetaCompartida smb
Ahora puedes acceder a tu carpeta compartida directamente desde el navegador de Windows.
Archivo de instalación y configuración de Samba (Usuarios avanzados)
Para facilitarte la vida, puedes crear un archivo de instalación de Samba, que puedes ejecutar en todas tus instalaciones de Linux.
No olvide actualizar los nombres FOLDERNAME y USER para que se ajusten a sus necesidades.
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.: Si este archivo no se ejecuta correctamente después de copiar y pegar, puede intentar utilizar dos2unix para convertir el archivo
Aplicaciones
- Acceda a sus archivos desde cualquier lugar con la redirección de puertos
- Cargar archivos de una máquina a otra en la misma red
Por ejemplo, yo lo utilizo para transferir archivos de mi PC con Windows a mi PC con Linux, que gestiona mi grabadora láser.