Montar Samba en Ubuntu Festy Server: Carpetas compartidas
15 de Junio de 2007 en Sistemas, Linux
Lecturas: 22,222

SambaUna de las ventajas de disponer de un servidor casero es la posibilidad de centralizar los documentos, las fotos, las pelis, la música …, para que todos los ordenadores siempre los tengan disponibles.

Este artículo viene del artículo anterior Instalar un servidor linux casero: Ubuntu Festy 7.04. Aquí se busca una forma más o menos fácil de disponer de unas carpetas compartidas, sin entrar en sistemas de usuario avanzados y permisos y cuentas.

El servicio Samba permite aún muchas más cosas, como compartir impresoras con descarga automática de drivers y hacer actuar el servidor como Servidor Principal de Dominio de Windows (PDC), pero se escapa de la intención del artículo.

En primer lugar, para hacer las cosas bién (y para tener en cuenta posibles futuros ajustes más avanzados), debemos crear un usuario en el sistema Linux para cada usuario Windows que se vaya a conectar.

Hay gente que le gusta poner el mismo usuario que el que tiene el ordenador Windows que se conectará. No es mala idea, pero no te ahorras nada importante, y si tienes entrando varios usuarios Administrador ya la tenemos liada. Yo aconsejo poner el nombre de usuario de la persona, en minúsculas.

$ adduser xavi

A continuación aparecen varias preguntas. Las importantes son nada más la contraseña y su repetición.

El siguiente paso es crear el árbol de directorios de los recursos a compartir. No hay ningún problema en tener los directorios repartidos por doquier, pero es más fácil administrar un único árbol que varios directorios sueltos. Los siguientes son un ejemplo:

$ mkdir /home/share/temporal //directorio temporal
$ mkdir /home/share/downloads //directorio para descargas
$ mkdir /home/share/backups //directorio para copias de seguridad
$ mkdir /home/share/utils //directorio para utilidades
$ mkdir /home/share/documentos //directorio para documentos
$ mkdir /home/share/musica //directorio para música
$ mkdir /home/share/pelis //directorio para películas

Si lo dejamos así cada usuario, cuando suba un archivo, éste se quedará con dicho usuario y su grupo como propietario, y luego empezarán los problemas de permisos. Así que lo ideal es crear un grupo dónde todos los usuarios sean miembros, y hacer que cuando se suba un archivo adquiera automáticamente ése grupo. Así sólo deberemos configurar derechos sobre el grupo y todos los usuarios se verán beneficiados a la vez.

Creamos el grupo:

$ groupadd samba

Y metemos a los usuarios dentro. Ojo al parámetro -a. Indica que no se sobreescriban los grupos a los que el usuario en cuestión ya pertenece. El parámetro -G hace que el grupos samba sea uno de los grupos secundarios, y así mantenemos funcionalidad para otras cosas linuxeras ;)

$ usermod -a -G samba pepe
$ usermod -a -G samba root
$ usermod -a -G samba xavi

El primero es el usuario que crea el sistema para uso normal. El segundo es el root de toda la vida y el tercero y sucesivos serán los usuarios que se van a usar para conectarse a los recursos compartidos. Los dos primeros aconsejo meterlos también para que tengan derechos sobre los archivos subidos.

Ahora, vamos a cambiar de dueño y grupo el árbol de directorios entero:

$ chown -R pepe:samba /home/shared

Y a continuación vamos a setar que todos los nuevos archivos hereden siempre el grupo samba del directorio padre

$ chmod g+s /home/shared/temporal
$ chmod g+s /home/shared/downloads
$ chmod g+s /home/shared/backups
$ chmod g+s /home/shared/utils
$ chmod g+s /home/shared/documentos
$ chmod g+s /home/shared/musica
$ chmod g+s /home/shared/pelis

Pues ya tenemos el sistema logístico preparado. Ahora vamos a instalar y configurar el Samba. Para ello, como es habitual en Ubuntu, hacemos lo siguiente:

$ apt-get install samba

El siguiente paso es ajustarle la configuración, pero antes haremos un backup del archivo de configuración por si acaso:

$ cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Editamos el archivo de configuración de Samba:

$ vim /etc/samba/smb.conf

Dentro del archivo de configuración, debemos buscar los siguientes parámetros y ajustarlos según la lista siguiente. Los dos primeros son el identificador de la máquina y el grupo de trabajo dónde va estar registrada. El tercero es la ruta y el nombre de archivo dónde se hará el log (aquí yo especifico mi lugar dónde centralizo todos los logs, y el %m es el nombre de la máquina entrante). El cuarto parámetro especifica que es necesario una cuenta de usuario Linux en el servidor (para mayor seguridad). Los dos últimos parámetros son los permisos que van a adquirir todos los archivos que se suban al servidor (que junto con lo del grupo de usuarios ya tendremos todo el tema de permisos ajustado)

workgroup = GRUPO_TRABAJO
netbios name = Server

log_file /server/logs/samba_%m.log

security user

create mask 664
directory mask 775

Antes de guardar y cerrar el archivo nos queda especificar los directorios que se van a compartir. Nos vamos al final de todo del archivo de configuración y escribimos lo siguiente:

[Documentos]
comment = Documentos compartidos
path = /home/shared/documentos
browseable = yes
read only = no
guest ok = no
[Downloads]
comment = Descargas
path = /home/shared/downloads
browseable = yes
read only = no
guest ok = no
[Musica]
comment = Biblioteca de Musica
path = /home/shared/musica
browseable = yes
read only = no
guest ok = no
[Pelis]
comment = Videoteca
path = /home/shared/pelis
browseable = yes
read only = no
guest ok = no
[Backups]
comment = Copias de Seguridad centralizadas
path = /home/shared/backups
browseable = yes
read only = no
guest ok = no
[Temporal]
comment = Directorio para acciones temporales
path = /home/shared/temporal
browseable = yes
read only = no
guest ok = no
[Utils]
comment = Utilitades del sistema
path = /home/shared/utils
browseable = yes
read only = no
guest ok = no

Como se ve, hay un bloque para cada directorio compartido. El nombre del bloque encerrado entre corchetes es el nombre que se va a ver en el “Entorno de Red”. No estoy seguro que los acentos y carácteres extraños funcionen, así que para evitar problemas los omito. El parámetro comment es el mensaje de descripción que el Windows muestra sobre cada recurso compartido. El path es la ruta absoluta del directorio a compartir. El parámetro browseable especifica si se va visualizar cuando abramos la ventana del explorador. Si ponemos que no no se verá, pero seguirá estando accesible escribiendo la ruta completa en la barra de direcciones. El read only define que el recurso compartido sea de sólo lectura. El último parámetro guest ok permite o no la visita de usuarios sin autenticar, como el famoso “invitado” de Windows.

Encontraréis todos los parámetros del archivo de configuración de samba explicados perfectamente en la man-page de smb.conf de Samba.

Pero aún nos queda una última cosa. Es necesario enlazar los usuarios de Samba con los usuarios del sistema Linux. Ésto se hace de la siguiente manera, a repetir por cada usuario:

$ smbpasswd -a xavi

No estoy seguro que sea absolutamente necesario, pues hemos definido en la configuración que los usuarios deben ser del sistema, pero yo lo he puesto y funciona todo ;)

Así que ya sólo nos queda reiniciar el servidor Samba

$ /etc/init.d/samba restart

Y ya lo tenemos funcionando. Espero que este artículo sea de ayuda.

Salud!

Tags: , , ,
 Enviar a Fresqui

Leer los Comentarios

[ # 2139 ] Comment desde David [29 de Junio de 2007, 06:34]

Buen manual sobre samba

graciasssssssss

[ # 2201 ] Comment desde Xavi [02 de Julio de 2007, 08:18]

De nada hombre, bienvenido!

[ # 3173 ] Comment desde Alejandro [30 de Julio de 2007, 10:31]

Acaba de llegarme un server que compramos un Dell Poweredge 840 y le isntale el Ubuntu Server y aqui estoy siguiendo tus instrucciones.Muchas gracias por el artículo
Salu2

[ # 3174 ] Comment desde Xavi [30 de Julio de 2007, 10:51]

De nada hombre, me alegro de que te sea útil!

[ # 4346 ] Comment desde barbiudo [29 de Agosto de 2007, 04:06]

muy interesante el articulo, justo lo q buscaba.. esta noche me pongo a ello q chapucee un poquito pero sin todo el exito q queria…
te felicito… por el articulo y por la pagina en general…

[ # 4376 ] Comment desde Xavi [30 de Agosto de 2007, 07:09]

Muchas gracias.
Si tienes cualquier duda, ya sabes ;)

[ # 5008 ] Comment desde Guillermo [10 de Septiembre de 2007, 03:28]

Una Consulta,
como puedo hacer para compartir una carpeta de Windows desde mi linux, ejemplo

/media/hda1

ya que necesito hacer un respaldo de esta unidad, pero como no tengo disco duro externo, pense en hacer el respaldo a través de red, el problema es que cuando me quiero conectar desde windows a Linux y coloco /media/hda1 no me permite ingresar…, si coloco cualquier otra carpeta, funciona super bien…

Saludos

[ # 6423 ] Comment desde carlos arteaga [05 de Octubre de 2007, 02:29]

buenos dias quiero saber como hago para colocar esta direccion en el path. para que todo los usuario que hagan sesion la levante. gracias espero respuesta satifatoria.

C:\oracle\ora92\bin;C:\Archivos de programa\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;\\SBSERP15\SISTEMAS_INF\RECURSOS;\\SBSERP15\SISTEMAS_INF\RTPB6;

[ # 6482 ] Comment desde Xavi [06 de Octubre de 2007, 10:15]

En Windows? Pues En la ventana de Variables de Entorno, dentro de las propiedades avanzadas de Mi Pc.

[ # 6898 ] Comment desde bkuda [12 de Octubre de 2007, 06:41]

Hola antes que todo muchas gracias por tu articulo, he seguido todo el proceso para configurar samba y a resultado muy bien pero con un detalle no tengo permiso de escritura ¿qué puede ser?

[ # 6905 ] Comment desde bkuda [12 de Octubre de 2007, 08:04]

No se si lo que hice esta bien pero para el problema de escritura que mencionaba lo solucione dando permisos al propietario y grupos de lectura, ecritura, etc.

chmod -R 755 /home/shared

saludos

[ # 6910 ] Comment desde Xavi [12 de Octubre de 2007, 10:25]

mmm… Creo que debería ser 775 para los directorios y 664 para los archivos. La segunda cifra se refiere al grupo. Cuando se genere un archivo nuevo o un directorio se crearán con los permisos 664 y 775, con lo que todo el mundo en el grupo podrá escribir en él. Con 755 los del grupo sólo podrán leerlo y sólo el propietario podrá escribir. Si es lo que quieres está bién.

[ # 6921 ] Comment desde bkuda [13 de Octubre de 2007, 04:38]

Si era chmod 775 me equivoque al digitarlo, y gracias por responder.

Saludos.

[ # 7366 ] Comment desde argos [22 de Octubre de 2007, 11:17]

Muy buenas.. una consulta.. En mi lugar de trabajo hay un servidor linux que tiene una serie de carpetas compartidas por samba a la que acceden sin problema varias máquinas con Windows. Internamente, en ese servidor, hay enlaces en esa carpeta a otras carpetas del disco duro del servidor. Cuando se accede desde windows a las carpetas compartidas, no hay ningun problema.. se navega perfectamente por los enlaces.. pero yo tengo en mi ordenador ubuntu y me quiero conectar a ese servidor por samba… pero no me deja navegar por los enlaces porque los considera enlaces a mi ordenador local, y no los trata como en windows, como si fueran carpetas. Existe algún parámetro para que al montar una carpeta samba en la que hay enlaces, los enlaces se traten como si fueran carpetas o archivos del servidor y no como si fueran enlaces? Gracias!

[ # 7367 ] Comment desde Xavi [22 de Octubre de 2007, 11:43]

mmmm curioso… Si lo he entendido bién, los enlaces del servidor son entendidos por el cliente como enlaces al sistema del cliente? mmmm… es muy raro…

cómo son los enlaces? SoftLinks o HardLinks? La verdad es que me suena muy extraño, pero vamos a ver si lo sacamos ;)

[ # 8495 ] Comment desde jose hdez [10 de Noviembre de 2007, 08:38]

hola he leido todo pero sabes estoy en un lio por que no puedo hacer que desde windows escriban algo en las carpetas que tengo en linux tengo usuarios en linux me logeo en windows con ese usuario m deja entrar a la carpeta pero nada cuando intento copiar algo solo me dice que no tengo permisos ,pero segun yo ya los puse en el webmin????????????? te agradeceria si me dijeras como le hago ,por que he notado que que winbindd no corre en fin no tengo idea d elo que pasa gracias

[ # 8713 ] Comment desde Xavi [12 de Noviembre de 2007, 08:47]

Buenas. A ver si nos aclaramos ;)

Antes que nada, entiendo que tienes el Samba instalado y configurado, porque dices que ves los directorios compartidos.

Primero, qué usuario es el propietarios del DIRECTORIO compartido? Es el mismo que el usuario que entra?

Segundo, si entran varios usuarios, estan todos en un mismo grupo? Y ése grupo es el propietario de los directorios y archivos compartidos?

Tercero, has verificado los derechos de los directorios y archivos, en especial los permisos de grupo?

Ala, ya nos cuentas!

[ # 17822 ] Comment desde Jose Rojas [21 de Febrero de 2008, 07:07]

Hola, me he permitido incluir este post en un wiki que estamos armando varios ubunteros para recopilar este tipo de documentos tan útiles para la comunidad. Por supuesto, hemos colocado los créditos correspondientes.

La dirección es: http://wiki.superubuntu.com

[ # 19511 ] Comment desde daniel [08 de Abril de 2008, 11:12]

[ # 21288 ] Comment desde Amarilis Avila [07 de Mayo de 2008, 07:49]

Hola, esta instalación, será igual para la versión 8.04 de ubuntu?

[ # 21339 ] Comment desde Xavi [08 de Mayo de 2008, 08:09]

Buenas Amarilis,

Estamos hablando de Samba y de comandos básicos del sistema. Yo creo que si, que será prácticamente idéntico.

Escribe un Comentario





Estadísticas