viernes, 17 de agosto de 2007

Samba - compartir recursos (archivos, carpetas e impresoras)

Samba fue creado para permitir que las estaciones de trabajo en Unix compartiesen recursos (archivos, carpetas, impresoras, unidades CD/DVD, etc...) con las estaciones de trabajo Windows en una red Microsoft.

Samba puede realizar básicamente seis operaciones:

- Compartir los discos duros de Debian con ordenadores Windows
- Compartir las impresoras instaladas en Debian con ordenadores Windows
- Compartir las unidades CD/DVD de Debian con ordenadores Windows
- Compartir los discos duros Windows con ordenadores Debian
- Compartir las impresoras instaladas en Windows con ordenadores Debian
- Compartir las unidades CD/DVD de Windows con ordenadores Debian

Para hacer uso de este servicio hemos de realizar el siguiente proceso:

1- Instalar el servidor samba
2- Configurar el servidor según nuestras necesidades
3- Añadir usuarios para acceder a los recursos compartidos
4- Arrancar el servidor samba


1. Instalar el servidor samba


Como siempre hacemos en este blog lanzamos synaptic (o bien desde consola, usando apt-get) y seleccionamos los siguientes paquetes para su instalación:

- samba
- samba-common
- smbfs
- smbclient

--------------------------------------------

Mientras se instala nos preguntara: Nombre del dominio o del grupo de trabajo.
en mi ejemplo es: CASA.


y la segunda pregunta es:
¿modificar smb.conf para usar la configuración WINS que proviene de DHCP?
si no lo utilizáis como es mi caso, mejor dejarlo en blanco.



Durante la instalación de Samba se creara un archivo en /etc/samba/smb.conf. En el que van todas las configuraciones necesarias del servidor, este fichero se encuentra muy bien comentado y explicado cada apartado (el único problema es que se encuentra en ingles). Por defecto nos encontramos con una configuración estándar, que modificaremos según nuestras necesidades.


NOTA: antes de realizar algún cambio o modificación en el fichero smb.conf, es importantísimo realizar una copia de seguridad


también podemos instalar algunas de estas herramientas gráficas (a elección de cada uno) para conectarnos y navegar por los directorios compartidos.

- kdenetwork-filesharing
- kdenetwork-kfile-plugins
- komba2
- smb4k


2. Configurar el servidor samba según nuestras necesidades

Solo el usuario administrador (root) o usuarios con permisos de administrador puede modificar este fichero.

como dije este fichero se encuentra muy bien comentado y explicado cada apartado (el único problema es que se encuentra en ingles). Por defecto nos encontramos con una configuración estándar, que modificaremos según nuestras necesidades.

smb.conf se divide en acciones que se identifican con títulos entre corchetes, para facilitar su lectura, localización y configuración.

Dentro de estas secciones se encuentran los parámetros que se pueden activar eliminado la señal de comentario (# ó ;), o desactivarlas colocando esa misma señal de comentario (# ó ;) al principio de la línea.

Las secciones que vamos a modificar son las siguientes:

1. [global] - define los parámetros del servidor y las secciones:

- Configura grupo de trabajo
- Configura descripción del servidor
- configura el acceso de los usuarios

2. [homes] - define los recursos compartidos
3. [printer] - define las impresoras compartidas.


Configurando los parámetros [global], [homes], [printer]

1. [global] - define los parámetros del servidor y las secciones:


1- configurar grupo de trabajo, linea: workgroup = WORKGROUP

Hemos de cambiar el grupo de trabajo que nos aparece por defecto por el nombre de nuestro grupo de trabajo. Para poder compartir recursos (archivos, carpetas, impresoras, etc...) es OBLIGATORIO que los ordenador GNU/Linux como los ordenadores Windows usen el mismo GRUPO DE TRABAJO.

Ejemplo real por defecto: workgroup = WORKGROUP
Ejemplo de nuestro grupo de trabajo: workgroup = CASA



2- configurar descripción del servidor, línea: server string = %h Servidor de archivos

Aquí podemos poner una pequeña descripción de nuestro servidor samba

Ejemplo real por defecto: server string = %h Servidor de archivos
(%h) = imprime en pantalla el nombre de host del servidor

Ejemplo de nuestro grupo de trabajo:
server string = Debian GNU/Linux - Servidor Samba -




3- configurar acceso de los usuarios, línea: security = user

Ahora vamos a especificar los usuarios que podrán utilizar los recursos de samba.
En este caso vamos a autentificar por usuarios y vamos a indicar el nombre de un fichero donde encontraremos la lista de los usuarios autorizados (lista que realizaremos en el proceso: añadir usuarios para acceder a los recursos compartidos)

Buscamos la línea:
Ejemplo real por defecto:
;security = user


la descomentamos y le añadimos la siguiente linea:
security = user
username map= /etc/samba/usuarios

observación: Comentar que el archivo "usuarios" lo tenemos que crear y sirve para indicarle al archivo de configuración smb.conf donde buscar los usuarios autorizados. El nombre del archivo puede ser cualquiera, y hasta cambiarle la ruta, pero recordad que tenéis que indicar la ruta exacta hasta el fichero en la opción: username map



______________________________________________________

2. [homes] - define los recursos compartidos

Aquí es donde se configura los recursos que queremos compartir.

Por defecto al buscar la sección [homes] nos encontramos con las siguientes líneas:

;[homes]
;comment = Home Directories
;browseable = no
;valid user = %S
; writable = no

y le hacemos la siguiente modificación:

[homes]
comment = Home Directories
browseable = yes
valid user = %S
writable = yes


Con esto hemos configurado el acceso a los directorios /home de los usuarios, permitiendo al usuario navegar por el directorio (browaseable = yes), permitiendo escribir en el directorio (writeable = yes)

Observación: cada usuario de samba comparte su directorio /home con esta configuración.

De esta forma cada usuario de Windows solo podrá ver su directorio /home ya que le pedirá su contraseña

NOTA: si no deseamos compartir el directorio /home de los usuarios basta con comentar todas las líneas de esta sección [homes] colocando delante de cada línea el simbolo #

Si tenemos que compartir algún otro directorio añadiremos al fichero smb.conf la siguiente sección:

[nombre para el nuevo recurso compartido]
comment = Nombre del directorio compartido
path = /ruta al directorio
public = yes
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
firce group= nogroup

Explicación:
[nombre para el nuevo recurso compartido], puedes poner lo que quieras.
Path = , es muy importante poner la ruta completa del directorio que quieres compartir.
valid users = , puedes incluir esta línea para restringir el acceso a este directorio o determinados usuarios.
public = yes, para crear un directorio publico no requiere contraseña.
guest only = yes, para que le acceso al directorio pueda ser anónimo.
force group, es para forzar que un grupo especifico se pueda conectar a esta carpeta.
force user, es para los usuarios que se puedan conectar a esta carpeta.
valid users = nombre_usuario_1 nombre_usuario_2, si queremos que un solo grupo de usuarios pueda acceder al directorio o carpetas compartidas.

______________________________________________________


3. [printer] - define las impresoras compartidas.

Voy a suponer que ya tienes una impresora conectada y funcionando en tu ordenador con Debian GNU/Linux.

Compartir impresoras con samba es muy sencillo, simplemente busca estas dos líneas en el archivo: /etc/samba/smb.conf
...
# printing = cups
# printcap name = cups
...

y descomentalas

...
printing = cups
printcap name = cups
...

Guardamos y reiniciamos el servidor para aplicar los cambios.

# /etc/init.d/samba restart

______________________________________________________


3- Añadir usuarios para acceder a los recursos compartidos

Los usuarios que queremos que tengan acceso al servidor samba deben estar creados como usuarios en nuestro ordenador Debian GNU/Linux (servidor samba). Podemos crear un grupo llamado "samba" y agregar a este grupo todos los usuarios que necesitemos que tengan acceso al servidor samba.

NOTA IMPORTANTE: si la red usa sistemas Windows anterior a NT, el usuario o los usuarios tendrán que existir obigatoriamente con el mismo nombre y la misma contraseña que en Debian GNU/Linux, en sistemas Windows NT y porterior, esto no es necesario.

Para agregar un usuario nuevo en Debian usamos el siguiente comando:

# adduser nombre_del_nuevo_usuario

Nos pedirá la clave que queremos utilizar para ese usuario y algunos datos que son opcionales, luego podremos cambiar sus privilegios.

Supongamos que tenemos un usuario ya creado llamado "usuariodebian" y que lo queremos agregar a los usuarios de samba, para esto utilizamos el siguiente comando:

# smbpasswd -a usuariodebian

nos aparecera algo como esto en pantalla

smbpasswd -a usuariodebian
new smb password:
retype new password:
added user usuariodebian

introducimos la clave que queremos que tenga ese usuario para ingresar en el servidor samba, la contraseña puede ser distinta a la contraseña que el usuario tiene para entrar (logearse) en Debian.

Para editar un usuario ejecutamos el siguiente comando:

# smbpasswd -a nombre_de_usuario

Para borrar un usuario del servidor samba ejecutamos:

# smbpasswd -x nombre_de_usuario




4- Arrancar el servidor samba

Para ejecutar el servidor samba, tendremos que iniciarlo mediante init o con inetd, para que todo funcione normalmente cuando el sistema operativo arranque, también podemos ejecutarlo manualmente, con la ayuda de este comando:

# /etc/init.d/samba start

Con cada modificación que realicemos en el fichero smb.conf habra que interrumpir y reiniciar el servicio de samba para que esa modificación entre en funcionamiento.

Existen dos formas de realizar esto:

1- Reiniciando directamente el servidor, con el siguiente comando:

# /etc/init.d/samba restart

2- Parando y arrancando nuevamente el servidor, con los siguientes comando:

# /etc/init.d/samba stop
# /etc/init.d/samba start



=============================================
Configuración
en entorno gráfico:

=============================================

Como usamos KDE nos dirigimos a:
Menu K>Centro de Control y dentro de este buscamos la rama Internet y Red>Samba

se nos abrirá una ventana como esta:

A partir de aquí solo tenemos que leer y rellenar las opciones que mejor nos convenga.
Mas fácil imposible.



================================

Para ver los equipos de la red y hacer uso de sus recursos compartidos,

nos dirigimos a:
Menú K>Menú del Sistema>Lugares remotos



y pinchamos en el icono Comparticiones Samba.











3 comentarios:

Anónimo dijo...

Excelente y sencillo, afirmo que sirve en Debian 7 y W7 .
En mi opinión tiene 10 ptos. el articulo
Saludos
y Gracias

1+ dijo...

Muy buen manual, claro y sencillo, por lo tanto excelente

x.lautaro@hotmail.com dijo...

la verdad es que esta bien claro, intentare hacerlo ya que es algo que estaria necesitando, gracias viejo, y exitos