Una 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: Linux, Samba, Sistemas, Ubuntu
Escribe un Comentario