a) Windows como servidor, Linux como cliente
1. Listar recursos compartidos de Windows
Para ver las carpetas compartidas por el equipo Windows, usa:
smbclient -L //IP_WINDOWS
Ejemplo:
smbclient -L //192.168.1.74
Cuando pida contraseña, simplemente pulsa Enter. En el ejemplo anterior el equipo Windows tiene la dirección 192.168.1.74 y vemos que lo que comparte, entre otras cosas la carpeta pública llamada "Compartida".
Si la carpeta no es pública como veremos más adelante, añade el usuario: -U usuario_de_windows para poder entrar en el sistema.
2. Acceder a la carpeta compartida (consola)
Para entrar en modo interactivo (similar a FTP):
sudo smbclient //IP_WINDOWS/Carpeta_Compartida
Ejemplo con carpeta pública:
sudo smbclient //192.168.1.74/Compartida
▪ Cuando pida contraseña, pulsa Enter (carpeta pública).
Comandos útiles dentro de smbclient:
▪ ls: Listar archivos.
▪ get archivo: Descargar un archivo. El archivo se descarga en el directorio actual desde donde ejecutaste el comando en tu terminal de Linux (no dentro de la carpeta compartida de Windows).
▪ put archivo: Subir un archivo a la carpeta compartida.
▪ exit: Salir.
b) Montar la carpeta en Linux (acceso permanente con permisos de usuario)
Para que la carpeta compartida de Windows sea accesible de forma permanente y con los permisos correctos para tu usuario en Linux, sigue estos pasos:
1. Crear el punto de montaje
Ejecuta:
sudo mkdir /samba
Si prefieres otra ruta (ej: /mnt/windows_share), ajusta los comandos.
2. Asignar permisos al directorio (opcional, pero recomendado)
Para evitar conflictos, asegúrate de que tu usuario (alumno en mi ejemplo) tenga control sobre /samba:
sudo chown alumno:alumnos /samba
3. Montar la carpeta compartida con permisos personalizados
Usa este comando para montar la carpeta con tu usuario y grupo, permitiendo lectura/escritura total (adapta el siguiente comando con la ip del servidor Windows, el nombre de tu carpeta pública compartida, la carpeta que sirve como punto de montaje en Linux y el nombre de tu usuario y su grupo):
Pulsa Intro, simplemente, cuando te pida la contraseña ya que es una carpeta pública que no tiene contraseña.
Puedes ver si ha quedado montada usando el comando "df"
Explicación de opciones:
• uid=alumno: Asigna la propiedad al usuario alumno.
• gid=alumno: Asigna el grupo alumnos.
• file_mode=0777 / dir_mode=0777: Permisos totales (ajusta a 0755 si prefieres restringir escritura).
• username=guest: Para carpetas públicas (si Windows requiere autenticación, usa username=tu_usuario_windows,password=tu_contraseña).
4. Montaje automático al iniciar (fstab)
Para que la carpeta se monte automáticamente al arrancar el sistema, edita /etc/fstab:
sudo nano /etc/fstab
Añade esta línea al final (ajusta IP, nombres y rutas):
//192.168.1.74/Compartida /samba cifs uid=alumno,gid=alumno,file_mode=0777,dir_mode=0777,username=guest,password="",x-systemd.automount,nofail 0 0
Notas:
En sistemas basados en systemd (como Raspberry Pi OS/Raspbian que es la que estoy usando para los ejemplos), el montaje de recursos de red como CIFS/SMB a veces no ocurre automáticamente en el arranque porque la red aún no está disponible cuando se procesan las entradas de fstab, (me ha ocurrido que no se montaba en el arranque y si, si lo hacia manualmente con mount -a) por lo que a las opciones anteriores he añadido:
x-systemd.automount
: crea una unidad que se montará automáticamente al acceder a la ruta /sambanofail
: evita que el sistema se queje o bloquee el arranque si el recurso no está disponible.
Los dos números al final de cada línea en /etc/fstab corresponden a estas opciones:
-
Dump (primer número, en mi caso 0):
Indica si se debe hacer un backup de la partición con el comando dump
.
-
0: No realizar backup.
-
1: Incluir en backup.
Esto hoy en día casi siempre se deja en 0 porque dump
ya no se suele usar.
-
Pass (segundo número, en mi caso 0):
Define el orden en que el sistema verifica el sistema de archivos con fsck durante el arranque:
-
0: No verificar nunca con fsck.
-
1: Verificar primero (usualmente reservado para /
raíz).
-
2: Verificar después del raíz, en orden.
Para sistemas de red como CIFS, este valor debe ser 0, porque no es un sistema local que fsck pueda verificar.
Prueba a reiniciar el sistema y entrar en la carpeta /samba. Debería montarse automáticamente y estar lista para utilizarse.
Acceso a Carpetas Compartidas desde el Gestor de Archivos (GUI) en Linux
Para acceder a la carpeta pública de Windows desde el gestor de archivos de Linux (como Nautilus, Thunar o Dolphin), sigue estos pasos:
1. Acceso Básico (Solo Lectura)
• Abre el gestor de archivos (ej: Nautilus en GNOME, Thunar en XFCE).
• En la barra de direcciones, escribe:
smb://IP_servidor_windows
• Si pide credenciales:
• Usuario: guest
• Contraseña: (deja vacía o escribe cualquier cosa)
⚠️ En algunas distribuciones, puede que no funcione con contraseña vacía. Prueba con guest + contraseña guest.
• Verás todas las carpetas compartidas en Windows. Haz clic en la carpeta pública (Compartida).
2. Acceso con Permisos de Escritura (Evitando Problemas de Permisos).
Si intentas crear, modificar o borrar archivos y recibes errores de permisos, hay dos soluciones:
Opción 1: Usar el Gestor de Archivos como Root (No recomendado para uso diario)
• Abre una terminal y ejecuta el administrador de archivos que tengas instalado:
sudo nautilus # GNOME (Ubuntu/Debian)
sudo thunar # XFCE
sudo dolphin # KDE
sudo pcmanfm (rapsbian)
• En la ventana de root, navega a smb://IP_servidor_windows/Carpeta_compartida.
• ⚠️ Precaución: Usar el gestor de archivos como root puede ser peligroso (borrado accidental de archivos críticos).
Opción 2: Montar la Carpeta con Permisos Correctos (Recomendado)
Sigue los pasos del apartado anterior para montar la carpeta con uid y gid de tu usuario:
sudo mount -t cifs //IP_Windows/Compartida /punto_de_montaje -o uid=tu_usuario,gid=tu_grupo,file_mode=0777,dir_mode=0777,username=guest
• Luego accede desde el gestor de archivos a /samba sin necesidad de root.
Compartir archivos entre Windows y Linux con Samba (Carpeta Privada)
Si la carpeta la ha creado nuestro usuario de Windows, la hemos preparado para compartir pero solo ese usuario tiene permisos para leer - escribir en esa carpeta es decir cuando la carpeta compartida en Windows requiere autenticación (solo un usuario específico tiene permisos de lectura/escritura), debemos modificar los comandos para incluir las credenciales. Las opciones son todas las mismas que hemos visto anteriormente cuando la carpeta era pública, la única diferencia es que tendremos que entrar a Windows desde Linux con las opciones username=Tu_usuario y password=tu contraseña de Windows. Recuerda que Windows comparte para usuarios, mientras que Linux comparte para equipos.
Por ejemplo:
smbclient -U nombre_usuario%contraseña //IP_servidor/carpeta_compartida
o
mount -t cifs //IP_servidor/carpeta_compartida /pto_montaje -o username=nombre_usuario_windows,password=contraseña
Compartir archivos entre Linux (servidor) y Windows o Linux (clientes) con Samba
Lo primero que tenemos que hacer es crear en Linux un directorio que será el punto de montaje y en principio, para practicar, es conveniente que le demos todos los permisos. (chmod 777)
1) Vamos a empezar creando una carpeta pública en Linux que se comparta con Windows, por ejemplo. Para ello tenemos que añadir al final del archivo /etc/samba/smb.conf una nueva sección por cada carpeta compartida:
[publica] --> Es el nombre que pondremos para acceder, aunque puedes poner el que quieras. Pero recuerda que es el que tendrás que utilizar para conectarte a la carpeta.
comment = " " Comentario sobre la carpeta compartida.
path = /ruta_absoluta_de_la_carpeta_a_compartir
public = yes/no -> si la carpeta es publica o no
writable = yes/no -> si se puede escribir o no en esa carpeta
otras opciones adicionales que se pueden utilizar son:
browseable = yes/no # Visible en la red
guest ok = yes/no # Permite acceso como invitado
create mask = 0777 # Permisos para nuevos archivos (todos los permisos)
directory mask = 0777 # Permisos para nuevos directorios (todos los permisos)
Por ejemplo:
Cada vez que añadamos una nueva sección a esta carpeta tenemos que reiniciar el servicio de samba.
service smbd start -> para iniciar el servidor samba
service smbd stop -> parar el servidor samba
service smbd restart -> cada vez que modifiquemos el archivo /etc/samba/smb.conf
El comando para ver si esta todo OK podemos utilizar el comando testparm
El ejemplo anterior es lo que saldría si todo esta bien.
Para acceder desde Windows a esta carpeta, aunque podemos hacerlo desde el explorador de Windows, lo más sencillo es hacer clic derecho, por ejemplo en el escritorio y crear un nuevo acceso directo. Al ser la carpeta pública no nos hace falta ni usuario ni contraseña. Dentro escribimos la dirección de red de la carpeta compartida.
Recuerda que en Windows se usan esas barras invertidas para las direcciones de red \\ y no las de Linux que son estas //.
Desde otro linux, podemos conectar con esta carpeta al igual que hicimos al principio del post. Vamos a recordarlo brevemente:
- Desde el gestor de archivos -> smb://IPservidor/nombre_sección
- Desde la consola -> smbclient //IPservidor/nombre_sección
- Montándolo:
1) Como root:
sudo mount -t cifs //IPservidor/nombre_seccion /Pto_montaje. //Nos pedirá contraseña pero no hace falta introducirla.
2) De forma automática o no por un usuario añadiendo la línea correspondiente en el archivo /etc/fstab
//Ipservidor/nombre_seccion /pto_montaje cifs [auto/noauto],user,[rw/ro]
Si queremos que al iniciar sesión, si hemos puesto la opción auto, (o cuando se monte como usuario) no pida la contraseña añade al final la opción password=""
2) Para acceder a una carpeta de un servidor-samba pero para determinados usuarios o grupos.
Para poder acceder a una carpeta para un usuario o grupo en Linux tenemos que tener presente dos requisitos:
- Tenemos que tener cuenta de usuario en el equipo que comparte, es decir en el servidor.
sudo adduser nombre_usuario
- Tenemos que tener cuenta de usuario de samba también en ese equipo.
sudo smbpasswd -a usuario (nos pedirá una nueva contraseña para usar samba)
Otras opciones del comando smbpasswd son:
-x Eliminar usuario de samba
-d Desabilitar usuario de samba
-e Habilitar usuario de samba.
Para ver los usuarios del equipo, que además son usuarios de samba usaremos:
3) Tenemos que crear la sección correspondiente de samba en el archivo
/etc/samba/smb.conf. En el ejemplo anterior creare una sección para que solo pueda acceder a esa carpeta el miembro del ordenador de Linux llamado "usuario". Si fueran varios usuarios cada uno de ellos iría en el comando "valid users" separado por un espacio.
Para permitir el acceso a un grupo en Samba con la directiva "valid users", se usa el nombre del grupo precedido por le signo @.
4) Como siempre que se modifica un archivo de configuración tenemos que reiniciar el servicio samba.
sudo service smbd restart
y ya podemos acceder a la carpeta igual que cuando el servidor era Windows, teniendo en cuenta que necesitamos el nombre del usuario y su contraseña para poder entrar al servicio.
Las credenciales son las de samba no las del usuario para entrar en el equipo Linux.
Si quisiéramos mostrar el estado de las conexiones actuales usaremos el comando:
sudo smbstatus
El cual nos mostrará los usuarios conectados y los recursos compartidos.
No hay comentarios:
Publicar un comentario