ping entre ambas VMs antes de empezar.
Objetivos de aprendizaje
- Compartir carpetas en Windows mediante el protocolo SMB
- Configurar Samba en Linux para compartir recursos con equipos Windows
-
Acceder a carpetas compartidas de Windows desde Linux usando
cifs-utils - Mapear unidades de red de forma persistente
- Compartir impresoras en red entre Windows y Linux
- Descubrir y enumerar recursos compartidos en la red
Requisitos previos
| Requisito | Estado |
|---|---|
| Ambas VMs en Red Interna de VirtualBox | |
| Conectividad entre VMs verificada (ping) | |
| Acceso con privilegios de administrador (Windows) | |
| Acceso con sudo (Ubuntu) | |
| IP de la VM Windows | |
| IP de la VM Ubuntu |
Parte 1: Compartir carpeta en Windows (50 min)
En esta primera parte vamos a crear una carpeta compartida en Windows y configurar los permisos de acceso por red.
1.1 Crear la carpeta y archivos de prueba
-
Abre el Explorador de archivos y navega a
C:\ - Crea una nueva carpeta llamada
Compartida -
Dentro de la carpeta, crea los siguientes archivos de prueba:
-
informe_prueba.txt— escribe cualquier texto dentro -
datos_taller.txt— escribe datos ficticios de un taller - Crea una subcarpeta llamada
Backups
-
1.2 Configurar la comparticion
-
Haz clic derecho sobre
C:\Compartiday selecciona Propiedades - Ve a la pestana Compartir
- Pulsa en Uso compartido avanzado...
- Marca la casilla "Compartir esta carpeta"
-
El nombre del recurso compartido debe ser
Compartida -
Pulsa en Permisos y configura:
- Todos (Everyone): Permiso de Lectura
- Administradores: Control total
- Acepta todos los dialogos
1.3 Acceder desde la otra VM
- Desde la otra maquina virtual (o desde la propia), abre el Explorador de archivos
-
En la barra de direcciones escribe:
\\IP_DE_WINDOWS\Compartida - Comprueba que ves los archivos creados
- Tambien puedes acceder desde la linea de comandos (CMD):
REM Mapear la carpeta compartida como unidad Z: (CMD) net use Z: \\192.168.1.10\Compartida REM Verificar que la unidad esta mapeada dir Z:\ REM Listar los recursos compartidos de la maquina remota (PowerShell) REM (sustituye al antiguo "net view \\IP", que requiere SMBv1 desactivado por defecto) powershell -Command "Get-SmbShare -CimSession 192.168.1.10"
net view: El comando
clasico net view \\IP dependia del protocolo
SMBv1/NetBIOS, que esta
desactivado por defecto en Windows 10/11 por
motivos de seguridad. Por eso suele devolver el error
"System error 6118" o una lista vacia. La alternativa
moderna es Get-SmbShare -CimSession <IP> en
PowerShell, que utiliza WS-Management sobre SMBv2/3.
1.4 Probar permisos de lectura y escritura
- Intenta leer un archivo de la carpeta compartida
- Intenta crear un nuevo archivo desde el equipo remoto
- Intenta eliminar un archivo existente
- Anota los resultados en la tabla siguiente
| Accion | Resultado | Observaciones |
|---|---|---|
| Leer archivo remoto | ||
| Crear archivo nuevo | ||
| Eliminar archivo existente | ||
Comando net use Z: |
Captura de la carpeta compartida accedida desde otro equipo
Haz
clic, arrastra o pega (Ctrl+V)
Parte 2: Samba - Compartir desde Linux (60 min)
Ahora vamos a configurar el servidor Samba en Ubuntu para que los equipos Windows puedan acceder a carpetas compartidas en Linux.
2.1 Instalar Samba
- Abre una terminal en Ubuntu
- Actualiza los repositorios e instala Samba:
sudo apt update sudo apt install samba -y # Verificar que Samba se ha instalado correctamente smbd --version # Comprobar que el servicio esta activo sudo systemctl status smbd
2.2 Crear la carpeta a compartir
- Crea el directorio que vamos a compartir:
# Crear la carpeta compartida sudo mkdir -p /srv/compartida # Establecer permisos amplios para pruebas sudo chmod 777 /srv/compartida # Crear archivos de prueba echo "Archivo de prueba desde Linux" | sudo tee /srv/compartida/prueba_linux.txt echo "Datos del taller - equipo Ubuntu" | sudo tee /srv/compartida/datos_ubuntu.txt
2.3 Configurar /etc/samba/smb.conf
- Haz una copia de seguridad del archivo de configuracion original:
- Edita el archivo de configuracion de Samba:
- Anade el siguiente bloque al final del archivo:
# Copia de seguridad sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak # Editar configuracion sudo nano /etc/samba/smb.conf
Bloque a anadir al final de smb.conf:
[Compartida] comment = Carpeta compartida del taller path = /srv/compartida browseable = yes read only = no guest ok = yes create mask = 0664 directory mask = 0775 force user = nobody
2.4 Reiniciar el servicio Samba
# Verificar que la configuracion no tiene errores testparm # Reiniciar los servicios de Samba sudo systemctl restart smbd sudo systemctl restart nmbd # Verificar que estan activos sudo systemctl status smbd
2.X Creacion de usuario Samba (obligatorio)
# Crear usuario en Linux si no existe sudo adduser usuario # Crear usuario Samba sudo smbpasswd -a usuario sudo smbpasswd -e usuario
2.X Diagnostico interno con smbclient
# Listar recursos smbclient -L localhost -U usuario # Acceso real smbclient //localhost/Compartida -U usuario ls
- Access denied → usuario Samba no creado
- No conecta → smbd no iniciado
- No aparece recurso → error en smb.conf
- Funciona a veces → uso incorrecto de guest
2.5 Acceder desde Windows
- En la VM de Windows, abre el Explorador de archivos
-
Escribe en la barra de direcciones:
\\IP_DE_UBUNTU\Compartida -
Deberias ver los archivos
prueba_linux.txtydatos_ubuntu.txt - Prueba a crear un archivo desde Windows dentro de la carpeta
-
Vuelve a Ubuntu y comprueba que el archivo aparece en
/srv/compartida
| Accion | Resultado | Observaciones |
|---|---|---|
| Instalar Samba | ||
| testparm sin errores | ||
| Acceder desde Windows a \\IP\Compartida | ||
| Crear archivo desde Windows en Samba | ||
| Verificar archivo en Ubuntu |
Captura de Windows accediendo a la carpeta Samba de Linux
Haz
clic, arrastra o pega (Ctrl+V)
Parte 3: Acceder a Windows desde Linux (40 min)
Ahora haremos el camino inverso: desde Ubuntu, montaremos una carpeta compartida de Windows usando el protocolo CIFS.
3.1 Instalar cifs-utils
sudo apt install cifs-utils -y
3.2 Montar la carpeta compartida de Windows
- Crea el punto de montaje en Ubuntu:
- Monta la carpeta compartida de Windows:
- Verifica que puedes ver los archivos:
# Crear punto de montaje sudo mkdir -p /mnt/windows # Montar la carpeta compartida de Windows (acceso como invitado) sudo mount -t cifs //192.168.1.10/Compartida /mnt/windows -o guest,vers=3.0 # Verificar que los archivos son visibles ls -la /mnt/windows # Leer un archivo cat /mnt/windows/informe_prueba.txt
sudo mount -t cifs //IP/Compartida /mnt/windows -o
username=USUARIO,password=CONTRASENA,vers=3.0
3.3 Configurar montaje permanente en /etc/fstab
-
Para que la carpeta se monte automaticamente al iniciar el
sistema, edita
/etc/fstab: - Anade la siguiente linea al final del archivo:
# Editar fstab sudo nano /etc/fstab # Linea a anadir (sustituye la IP por la de tu VM Windows): //192.168.1.10/Compartida /mnt/windows cifs guest,vers=3.0,_netdev 0 0 # Probar que funciona sin reiniciar sudo mount -a # Verificar df -h | grep windows
/etc/fstab, el sistema podria no arrancar
correctamente. Revisa siempre la sintaxis antes de guardar.
| Comando | Resultado | Observaciones |
|---|---|---|
sudo mount -t cifs ... |
||
ls -la /mnt/windows |
||
Linea anadida en /etc/fstab |
||
sudo mount -a |
Captura de Linux accediendo a la carpeta compartida de
Windows
Haz clic, arrastra o pega (Ctrl+V)
Parte 4: Mapeo persistente de unidades en Windows (20 min)
En Windows, podemos mapear una carpeta compartida como una letra de unidad de forma persistente para que sobreviva a los reinicios.
4.1 Mapear unidad de forma persistente
- Abre una ventana de CMD como administrador
- Ejecuta el siguiente comando para mapear la carpeta Samba de Linux como unidad Z:
- Verifica que aparece en el Explorador de archivos
REM Mapear unidad de red persistente net use Z: \\192.168.1.20\Compartida /persistent:yes REM Verificar las unidades mapeadas net use REM Comprobar el contenido dir Z:\
4.2 Verificar persistencia tras reinicio
- Reinicia la maquina virtual de Windows
- Una vez reiniciada, abre el Explorador de archivos
- Comprueba que la unidad
Z:sigue mapeada - Ejecuta
net useen CMD para confirmar
4.3 Desconectar la unidad mapeada
REM Desconectar la unidad Z: net use Z: /delete REM Verificar que se ha eliminado net use
| Accion | Resultado | Observaciones |
|---|---|---|
net use Z: ... /persistent:yes |
||
| Unidad visible en Explorador | ||
| Persistencia tras reinicio | ||
net use Z: /delete |
Captura de la unidad mapeada en el Explorador de archivos
Haz
clic, arrastra o pega (Ctrl+V)
Parte 5: Simulacion de impresion en red (30 min)
En esta parte simularemos una impresora de red mediante una carpeta compartida. Este enfoque reproduce el flujo real de trabajo en muchas empresas donde los documentos se envian a un servidor central para su gestion o impresion.
5.1 Crear carpeta "Impresora" en Windows
-
En la maquina Windows, crea la carpeta:
C:\Impresora -
Dentro de la carpeta, crea un archivo de prueba:
cola.txt
5.2 Compartir la carpeta
- Haz clic derecho sobre
C:\Impresora - Selecciona Propiedades
- Ve a la pestana Compartir
- Pulsa en Uso compartido avanzado
- Marca "Compartir esta carpeta"
- Nombre del recurso:
Impresora -
Permisos:
- Todos (Everyone): Lectura y escritura
5.3 Acceso desde otro equipo
- Desde otra maquina (Windows o Linux), accede a:
\\IP_DE_WINDOWS\Impresora
5.4 Simulacion de impresion
-
Desde el equipo remoto, crea un archivo de texto (por ejemplo:
documento.txt) - Copia ese archivo dentro de la carpeta compartida
- Ese archivo simula un documento enviado a la impresora
5.5 Verificacion desde el equipo "servidor"
- En la maquina Windows, abre
C:\Impresora - Comprueba que el archivo enviado desde el otro equipo aparece
- Abre el archivo para verificar su contenido
| Accion | Resultado | Observaciones |
|---|---|---|
| Carpeta compartida creada | ||
| Acceso desde otro equipo | ||
| Envio de documento | ||
| Recepcion en servidor |
- No se puede acceder → Problema de red o permisos
- No se puede copiar archivo → Permisos de escritura incorrectos
- La carpeta no aparece → Error en la comparticion
Captura del documento enviado a la "impresora"
Haz clic,
arrastra o pega (Ctrl+V)
Parte 6: Descubrir recursos en la red (20 min)
Es fundamental saber como descubrir que recursos estan compartidos en una red. Veremos herramientas tanto de Windows como de Linux.
6.1 Desde Windows
REM Ver recursos compartidos de un equipo remoto (PowerShell, metodo moderno) powershell -Command "Get-SmbShare -CimSession 192.168.1.10" REM Ver TODOS los recursos compartidos incluidos los ocultos ($) powershell -Command "Get-SmbShare -CimSession 192.168.1.10 | Format-Table Name, Path, Description" REM Ver recursos compartidos del equipo local net share REM Tambien funciona el clasico (siempre que el equipo remoto tenga SMBv1 habilitado) REM net view \\192.168.1.10 REM Aviso: net view falla con "System error 6118" si SMBv1 esta desactivado REM (que es el comportamiento por defecto en Windows 10/11).
6.2 Desde Linux
# Listar recursos compartidos de un equipo Windows/Samba smbclient -L //192.168.1.10 -N # Listar con mas detalle smbclient -L //192.168.1.10 -N --option="client min protocol=SMB2" # Instalar nmap si no esta instalado sudo apt install nmap -y # Escanear recursos SMB con nmap nmap --script smb-enum-shares -p 445 192.168.1.10 # Escanear todos los equipos de la red nmap --script smb-enum-shares -p 445 192.168.1.0/24
6.3 Inventario de recursos descubiertos
Completa la tabla con todos los recursos compartidos que encuentres en la red del aula:
| IP del equipo | Nombre del recurso | Tipo | Acceso |
|---|---|---|---|
Captura del resultado de la exploracion de recursos en red
Haz
clic, arrastra o pega (Ctrl+V)
Parte 7: Proyecto final integrador - Taller de reparacion (60 min)
7.1 Equipo Windows (Tecnico)
El PC del tecnico debe tener configurado:
-
Carpeta compartida
C:\Informes: con permisos de lectura y escritura para el equipo del cliente - Impresora compartida: accesible desde la red
- Herramienta de acceso remoto instalada (escritorio remoto de Windows habilitado o software como AnyDesk)
| Servicio del Tecnico (Windows) | Estado | Detalles |
|---|---|---|
Carpeta C:\Informes compartida (R/W) |
||
| Impresora compartida en red | ||
| Acceso remoto habilitado |
7.2 Equipo Linux (Cliente)
El PC del cliente debe tener configurado:
-
Samba share
/srv/backups: carpeta compartida para copias de seguridad - Servicio SSH activo: para acceso remoto seguro desde el tecnico
-
Montaje automatico de la carpeta
C:\Informesdel tecnico en/mnt/informes(via fstab)
| Servicio del Cliente (Linux) | Estado | Detalles |
|---|---|---|
Samba share /srv/backups |
||
| SSH activo y accesible | ||
Auto-montaje de /mnt/informes (fstab) |
7.3 Demostracion del entorno
Debeis demostrar las siguientes funcionalidades:
- Acceso remoto: El tecnico accede al equipo del cliente via SSH o escritorio remoto
- Comparticion bidireccional: Crear un archivo en Windows y verlo en Linux, y viceversa
- Backup automatizado: Copiar un archivo desde el equipo del tecnico a la carpeta de backups del cliente usando un script simple
# Ejemplo de script de backup (ejecutar en Linux) #!/bin/bash # backup_informes.sh - Copia informes del tecnico a backups FECHA=$(date +%Y%m%d_%H%M%S) cp -r /mnt/informes/* /srv/backups/backup_$FECHA/ echo "Backup completado: backup_$FECHA"
| Demostracion | Resultado | Observaciones |
|---|---|---|
| Acceso remoto funcional | ||
| Archivo creado en Windows visible en Linux | ||
| Archivo creado en Linux visible en Windows | ||
| Script de backup ejecutado |
Captura del entorno completo del tecnico (Windows)
Haz
clic, arrastra o pega (Ctrl+V)
Captura del entorno completo del cliente (Linux)
Haz
clic, arrastra o pega (Ctrl+V)
Captura de la demostracion de comparticion bidireccional
Haz
clic, arrastra o pega (Ctrl+V)
Parte 8: Preguntas de reflexion
8.1 ¿Que es el protocolo SMB/CIFS? ¿Para que se utiliza y en que sistemas operativos esta disponible?
8.2 Cuando compartimos una carpeta en Windows, existen los permisos de comparticion y los permisos NTFS. ¿Cual prevalece cuando entran en conflicto? Pon un ejemplo.
8.3 ¿Por que es necesario Samba en Linux? ¿Que problema resuelve?
8.4 ¿Cual es la diferencia entre un grupo de trabajo (workgroup) y un dominio? ¿En que entornos se usa cada uno?
8.5 ¿Es posible compartir archivos entre Windows y Linux sin usar Samba? Menciona al menos dos alternativas.
Parte 9: Reto tecnico — troubleshooting Samba y automatizacion (45 min)
Hasta aqui has configurado servicios siguiendo pasos. En esta parte tienes que romper, diagnosticar y automatizar. Se valora que leas los logs y justifiques cada decision, no que hagas funcionar la configuracion por casualidad.
Reto 1 — Rompe y repara Samba leyendo logs (15 min)
Sobre el recurso Samba que configuraste en la Parte 2, introduce intencionadamente los siguientes fallos uno a uno, observa desde el cliente Windows que pasa, y usa los logs del servidor para diagnosticar antes de arreglar:
-
En
/etc/samba/smb.confcambiaread only = noaread only = yesy recarga consudo systemctl reload smbd. -
Cambia el propietario del directorio compartido a
root:rootconchmod 700. -
Elimina al usuario del fichero de usuarios Samba con
sudo smbpasswd -x nombreusuario(anota el nombre antes para poder restaurarlo).
Para cada fallo, rellena una fila de la tabla.
No uses Google: consulta
/var/log/samba/log.smbd,
/var/log/samba/log.<hostname> y
sudo journalctl -u smbd -n 50.
| Fallo | Mensaje de error visto en Windows | Linea del log del servidor que explica la causa | Correccion aplicada y verificacion |
|---|---|---|---|
| 1 (read only) | |||
| 2 (permisos) | |||
| 3 (usuario) |
Reto 2 — Script propio de backup con rollback (20 min)
Escribe un script bash llamado backup_a_samba.sh
sin copiar plantillas de internet. El script
debera:
-
Comprobar si
/mnt/samba_backupya esta montado. Si no lo esta, montar el recurso Samba usandomount -t cifscon credenciales desde un fichero externo de credenciales (no en claro dentro del script). -
Ejecutar un
rsync -av --stats /home/$USER/documentos/ /mnt/samba_backup/$(hostname)-$(date +%F)/. - Si el codigo de salida de rsync es distinto de 0, borrar la carpeta parcial creada en destino (rollback) y registrar ERROR con detalle.
- Si rsync acaba bien, registrar OK, numero de ficheros transferidos y tamaño total, y desmontar el share.
-
Guardar el log en
~/backup_samba.logcon fecha y hora en cada linea.
Pega aqui el contenido completo del script:
Explica por que guardas las credenciales en un fichero
externo
y que permisos debe tener ese fichero. ¿Que pasaria si lo dejases
en 644?
Reto 3 — SMB vs NFS, decision razonada (10 min)
a) ¿Que recomiendas, Samba o NFS, y por que? Menciona al menos dos ventajas concretas (rendimiento, gestion de permisos, simplicidad) y una desventaja del que descartas en este contexto.
b) Si manaña la oficina incorporase 3 Mac y 2 Windows, ¿cambiaria tu decision? Explica como gestionarias la heterogeneidad sin mantener dos servicios en paralelo.
Captura del reto tecnico
Adjunta una unica captura que muestre: (a) una linea del log de
Samba con el error del Reto 1 resaltado, y (b) la ejecucion
exitosa de tu backup_a_samba.sh con el final del log
(OK, numero de ficheros, tamaño).
Haz clic, arrastra o pega una imagen (Ctrl+V)
Evaluacion
Criterios de evaluacion
| Criterio | Peso | Puntuacion |
|---|---|---|
| Parte 1: Compartir carpeta en Windows (SMB) | 12% | |
| Parte 2: Configuracion de Samba en Linux | 15% | |
| Parte 3: Acceso desde Linux a Windows (CIFS) | 12% | |
| Parte 4: Mapeo persistente de unidades | 8% | |
| Parte 5: Compartir impresora en red | 8% | |
| Parte 6: Descubrimiento de recursos en red | 5% | |
| Parte 7: Proyecto integrador del taller | 15% | |
| Parte 8: Preguntas de reflexion | 5% | |
| Parte 9: Reto tecnico (troubleshooting Samba + script propio + SMB/NFS) | 20% |
Firma y entrega
Lista de verificacion
| Dato | Tu respuesta |
|---|---|
| Nombre del alumno | |
| Firma | |
| Fecha de entrega |