Como siempre… y gracias a Wikipedia, definamos qué es samba. Es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que computadoras con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows.
Tomar en cuenta algo importante… Samba no solo me sirve para compartir archivos, sino que (y continuando con la wikipedia…) también permite validar usuarios haciendo la función de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión y autentificar con su propio archivo de usuarios.
¿Importante? Claro… si vas a usar un sistema GNU/Linux (aunque me inclino toda la vida por Ubuntu 😉 ) y vas a «convivir» con otros sistemas, posiblemente será necesario que se compartan archivos. He ahí el detalle.
Manos a la obra.
Primero lo primero… ¿Qué vamos a hacer? Vamos a configurar SAMBA de tal manera podamos crear recursos compartidos que puedan ser accedidos por nosotros desde cualquier parte de nuestra red, desde cualquier sistema operativo.
Obviamente, nuestro Ubunto debe de tener una configuración IP adecuada y salida a internet. Esto se puede configurar en /etc/network/interfaces
Para éste tutorial, mi configuración es:
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
y recordar reiniciar la interfaz para que surta efecto los cambios:
sudo ifdown eth0
sudo ifup eth0
Instalación de Samba
Básicamente, para instalar SAMBA hay que instalar 3 paquetes (a mí criterio) así:
sudo apt-get install samba samba-common smbclient
Ahora entraremos en el archivo de configuración de SAMBA, el cual es: /etc/samba/smb.conf
sudo nano /etc/samba/smb.conf
Bien, Identifique la sección de configuración [global] , y aquí cambiaremos los siguientes parámetros:
workgroup = REDES #Nombre del grupo de trabajo de las computadoras
# Hasta cierto punto, este parámetro anterior puede ser cualquier cosa, no nos quitará el sueño.
server string = Mi servidor SAMBA 🙂 # Nombre descriptivo de mi equipo servidor.
interfaces = eth0 # Interfaces donde el servicio (demonio) de samba estará funcionando.
Samba esta a la escucha o pendiente de responder solicitudes o peticiones de conexión desde la interface eth0. Es básicamente una arquitectura Cliente/Servidor. Los equipos que quieran entrar a nuestro recurso compartido serán «clientes» y éste equipo será el «servidor».
Se guarda el archivo y reiniciemos los servicios de SAMBA: smbd y nmbd
sudo service smbd restart
sudo service nmbd restart
Un comando sencillo e importan te para ver la versión de samba que tenemos es el siguiente:
samba -V
Otro comando interesante… Si deseas saber las conexiones actuales de samba (qué usuarios están conectados a qué recurso compartido…):
smbstatus
Creación de usuarios SAMBA
Primero aclarar… Para crear usuarios en SAMBA, primero debemos de crear usuarios en nuestro Ubuntu. Así funciona y no lo han cambiado, así que mejor no preguntar xD
Para nuestro ejemplo, crearemos 2 usuarios Unix (del sistema GNU/Linux):
- usr_a
- usr_b
Lo hacemos mediante la siguiente línea de comando:
sudo adduser –shell /bin/false usr_a
sudo adduser –shell /bin/false usr_b
Y Ojo, les pedirá información referente al usuario más la contraseña de acceso. Ejemplo:
En el comando adduser, como le estamos diciendo que el Shell (Interprete de comando) es «false», dicho usuario no tendrá acceso a nuestro «servidor», pero sí será reconocido próximamente por samba… ya verán.
Explicando un poco más… En el archivo /etc/passwd se encuentra los usuarios del sistema con su información básica (nombre de usuario, UID o identificador único de usuario, GID o identificador único de grupo, ruta del interprete de comando (para que pueda entrar al sistema), entre otra información importante. Básicamente, lo que hacemos con el parámetro –shell es asignarle un interprete de comando falso así para que no pueda accder al sistema.
Ejemplo:
usr_a:x:1001:1001::/home/usr_a:/bin/false
usr_b:x:1002:1002::/home/usr_b:/bin/false
(Puedes verificarlo con cat /etc/passwd)
Para añadir éstos usuarios a SAMBA, ingresamos la siguiente línea de comando (tome en cuenta que para cada línea ejecutada, le solicitará digitar una contraseña la cual puede ser distinta a la asignada con adduser anteriormente):
smbpasswd -a usr_a
smbpasswd -a usr_b
Para nuestro ejemplo, mi usuario de sistema (con el que «supuestamente» estoy trabajando en mi ubuntu) es adminis . Éste usuario lo agregaremos también al sistema de samba (o con el que ha estado trabajando hasta el momento).
Creación de grupo de usuarios
Ahora crearemos un grupo en común para usr_a y usr_b para nuestro ejemplo. Primero creamos el grupo, luego agregar a nuestros usuarios al nuevo grupo.
sudo addgroup usuarios
sudo adduser usr_a usuarios
sudo adduser usr_b usuarios
Creación de recursos compartidos
Crearemos dos carpetas, las cuales vamos a compartir. Su ubicación: /home/adminis/ (donde «adminis» es el nombre de usuario actual… en mi caso es adminis)
- Una que se llame recursoc
- La otra que se llame otrorecurso
mkdir /home/adminis/recursoc
mkdir /home/adminis/otrorecurso
Asignemos el permiso 777 a las dos carpetas, dado que samba se encargará de los permisos respectivos ya cuando estén compartidos en red.
chmod -R 777 /home/adminis/recursoc
chmod -R 777 /home/adminis/otrorecurso
Ahora, deberemos entrar al archivo de configuración de samba, y adicionar al final del archivo las siguientes líneas:
[recurso] #Primer recurso compartido a crear. Se llama recurso
comment = Mi Recurso compartido #Descripción del recurso compartido
path = /home/adminis/recursoc/ #Ruta de la carpeta a compartir
browseable = yes #Determinamos que el recurso compartido será visible en la red.
create mask = 774 #Cuando se cree un archivo, lo creará con el permiso 774
directory mask = 775 #Cuando se cree un directorio, lo creará con el permiso 775
read list = adminis #El usuario adminis solo tendrá derecho de lectura.
valid user = usr_a,usr_b,adminis #Estos tres usuarios son los únicos usuarios válidos.
write list = @usuarios #El grupo de usuario «usuarios» (el creamos) tendrá derecho de escritura.
[recurso2] #Segundo recurso compartido a crear: Se llama recurso2
comment = Recurso compartido público
path = /home/adminis/otrorecurso/
browseable = no
write list = adminis
read only = yes #Determina si el recurso compartido será de sólo lectura para todo los demás usuarios.
guest ok = yes #Determina si permitirá el acceso a invitados (a cualquiera).
Objetivo del recurso compartido [recurso]: Que los 3 usuarios en samba puedan acceder y leer el contenido del recurso compartido. Únicamente el grupo usuarios puede escribir en él. El recurso compartido es visible en la red.
Objetivo del recurso compartido [recurso2]: Éste recurso compartido es accesible por todos (sin necesidad de autenticación). Es de solo lectura y únicamente el usuario adminis puede escribir en él (crear archivos y carpetas). El recurso compartido no es visible fácilmente en la red.
Guarde el archivo y reinicie los dos servicios principales de SAMBA. (Creo que no es necesario reiniciar los servicios, pero por cualquier cosa… hágalo!)
sudo service smbd restart
sudo service nmbd restart
Comprobación del funcionamiento en Windows
Para nuestro ejemplo, usaré la versión XP de Windows. No es que me guste, y no es que esté desactualizado xD sino que es la más liviana de las versión de Windows para laboratorio.
Lo primero es asegurarse que las 2 máquinas estén en la misma red, que se puedan «ver» entre sí (mediante ping) y, de ser necesario, hay que bajar los firewalls locales de la Windows XP.
En Windows, crearemos dos usuarios nuevos: usr_a y adminis (con sus respectivas contraseñas asignadas en samba. Deben de ser iguales para mayor facilidad, dado que no se nos estará solicitando contraseñas para entrar a los recursos compartidos).
No sé si a estas alturas habrá dudas para crear usuarios en Windows XP… pero si las hay, se debe dar clic en Inicio -> Panel de Control -> Cuentas de usuario.
Cerrar la sesión, y entrar con la sesión adminis (en Windows XP).
Una vez iniciada la sesión, se deberá de entrar al recurso compartido de ésta manera:
Clic en Inicio → Ejecutar → y Digitar: \\192.168.1.10 [ENTER]
(192.168.1.10 es la IP de mi servidor. En su caso, ver qué configuración IP tienen en su servidor)
Deberá de ver los recursos compartidos por el servidor samba, en donde básicamente hay 2: un recurso compartido e “impresoras y faxes”.
Intente entrar al recurso compartido llamado: recurso e intente crear una carpeta y crear un archivo.
¿Qué sucede? que no puede dado que no hemos configurado dicho recurso compartido para que el usuario adminis pueda escribir en él. En éste caso, solo podemos ver los archivos y carpetas que están ahí (ahorita no hay nada).
En la barra de dirección agregue el nombre del otro recurso compartido (recurso2), o sea, así:
Intente crear una carpeta y, dentro de la carpeta, crear un archivo de texto cualquiera.
En éste caso, si nos dejará crear carpetas y archivos dado que tenemos éste permiso en el recurso compartido.
Ahora, cierre sesión y entre con el usuario usr_a y vuelva a entrar al recurso compartido llamado recurso
Una vez adentro, cree una carpeta y, dentro de ella, cree un archivo de texto.
¿Verdad que sí pudo? Ok, hemos configurado los recursos compartidos asignando permisos específicos por usuarios y usando un grupo también.
Ahora ingrese al recurso compartido recurso2 y tratar de crear una carpeta o un archivo.
¿Da error verdad? Claro, así lo estipulamos. Intente ver el contenido del archivo de texto creado por adminis (en la carpeta que creó adminis).
Lo puede visualizar dado que se tiene acceso como sólo lectura.
Ahora, cierre sesión y entre con otro usuario (que no sea usr_a ni adminis), o sea, otro usuario del Windows y trate de entrar a los dos recursos compartidos.
Se le solicitará usuario y contraseña para acceder a uno de los 2 recurso compartidos y usted deberá de ingresarlo manualmente según convenga.
Espero que les haya ayudado. Saludos!
Comentarios por Facebook
comentarios