fbpixel
Etiquetas: ,

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
samba-access-folder-windows Crear una carpeta compartida con Samba en Linux

También es posible acceder al archivo utilizando un navegador web

samba-access-folder-browser Crear una carpeta compartida con Samba en Linux

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

samba-access-folder-windows-alias Crear una carpeta compartida con Samba en Linux

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

windows-add-network-1 Crear una carpeta compartida con Samba en Linux

En el campo especificado la dirección de la carpeta compartida

\MiMáquina CarpetaCompartida smb

windows-network-shared-folder-samba-configure Crear una carpeta compartida con Samba en Linux

Ahora puedes acceder a tu carpeta compartida directamente desde el navegador de Windows.

windows-network-shared-folder-samba Crear una carpeta compartida con Samba en Linux

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.

Fuentes