Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⋆ ¿Cómo instalar y configurar SAMBA en GNU/Linux Debian?

⋆ ¿Cómo instalar y configurar SAMBA en GNU/Linux Debian?

(Tiempo estimado: 7 - 14 minutos)

Compartir ficheros desde GNU/Linux es muy sencillo gracias a SAMBA. En este tutorial vamos a aprender a compartir varios recursos de un equipo GNU/Linux para que usuarios tanto desde Windows como desde equipos GNU/Linux puedan acceder. Es un primer contacto con Samba, por lo que quedan excluidas del tutorial todas las configuraciones complejas que requieran de mucho mas trabajo de configuración.

Seguid leyendo y aprenderéis a compartir recursos desde GNU/Linux con Samba...

 

 

¿QUÉ ES SAMBA?

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. Samba también permite validar usuarios haciendo 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, directorios compartidos y autentificar con su propio archivo de usuarios.

Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el Mac OS X Server de Apple.

 

 

Con SAMBA podemos compartir ficheros e impresoras en diferentes Sistemas Operativos

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • PC con GNU/Linux Debian (ó Ubuntu)
  • PC con Windows 7
  • Internet (recomendado)

 

 

2.- ESQUEMA DE RED

El esquema de red para este tutorial es casi innecesario ya que tendremos solamente 2 equipos en la misma red LAN que formarán el dúo linux/servidor y windows/cliente. La IP del equipo cliente no es necesaria y la del servidor linux/samba tampoco aunque es bueno tenerla a mano para posibles pruebas:

Compartir ficheros entre Linux y Windows con SambaEsquema de red

 

 

3.- INSTALACIÓN DE SAMBA

Lo primero que debemos hacer para seguir este tutorial es instalar Samba en el equipo con GNU/Linux. Es tan sencillo como ejecutar los comandos siguientes con usuario root o con un usuario con permisos de sudoer:

raul@debian:~$ sudo apt-get update
raul@debian:~$ sudo apt-cache search samba smbclient

  

 

4.- CONFIGURAR SAMBA

Una vez hemos instalado Samba en el equipo GNU/LINUX, realizaremos una configuración básica de Samba exportando 2 recursos (directorios), cada uno de ellos tendrá sus propias características de acceso. A continuación, se describen brevemente los recursos a compartir por el servidor:

  • Recurso "Software Empresarial": visible para todo el mundo y de solo lectura
  • Recurso "Público": visible para todo el mundo y con permiso lectura/escritura para todo el mundo

 

El fichero principal de configuración es /etc/samba/smb.conf. Lo primero será realizar una copia de seguridad del fichero por si algo sale mal o si queremos volver al punto inicial:

raul@debian:~$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

  

 

La configuración que vamos a realizar es básica y solamente nos centraremos en los recursos a compartir. Editaremos el fichero de configuración de Samba (smb.conf) y nos centraremos en la parte inferior del fichero donde se añaden los recursos a compartir, justo debajo de "Share Definitions".

Recurso "Software Público":

[Software Público]
comment = Software público general
path = /opt/samba/software_publico/
browseable = yes
public = yes
writeable = yes
create mask = 0644
directory mask = 0755

  

 

La explicación de cada una de las opciones para el recurso "Software Público" son las siguientes:

[Software Público] : Nombre del recurso compartido

  • comment = Software público general : Breve descripción del recurso compartido
  • path = /opt/samba/software_publico/ : Directorio del recurso
  • browseable = yes : Directorio visible en el explorador
  • public = yes : Visible para usuarios sin contraseña
  • writeable = yes : Se permite escritura en el directorio
  • create mask: 0644 : Los ficheros se crearán -por defecto- con los permisos rw-rw-rw
  • directory mask: 0755 : Los directorios se crearán -por defecto- con los permisos rwx-r-xr-x

 

 

Recurso "Público":

[Publico]
comment = Carpeta pública de subida de ficheros
path = /opt/samba/publico/
browseable = yes
public = yes
writable = yes
create mask = 0644
directory mask = 0755

  

 

La explicación de cada una de las opciones para el recurso "Público" son las siguientes:

[Público] : Nombre del recurso compartido

  • comment = Software utilizado en la empresa : Breve descripción del recurso compartido
  • path = /opt/samba/software_empresarial/ : Directorio del recurso
  • browseable = yes : Directorio visible en el explorador
  • public = yes : Visible para usuarios sin contraseña
  • writeable = yes : Se permite escritura en el directorio
  • create mask: 0644 : Los ficheros se crearán -por defecto- con los permisos rw-rw-rw
  • directory mask: 0755 : Los directorios se crearán -por defecto- con los permisos rwx-r-xr-x

 

 

 

 

5.- CREAR DIRECTORIOS Y PERMISOS DE LOS DIRECTORIOS

Existen 2 niveles de configuración de permisos de lectura/escritura: En Samba y a nivel de Sistema de Ficheros en GNU/Linux.

Si tenemos, por ejemplo, el directorio "Público" a nivel de sistema de ficheros para que solo root pueda escribir, es lógico que no podamos escribir nada desde Samba incluso con la configuración "writeable = yes", por eso, debemos configurar correctamente Samba y los directorios para que los permisos funcionan tal y como queremos.

Primero crearemos los 2 directorios que vamos a compartir:

raul@debian:~$ sudo mkdir /opt/samba/publico
raul@debian:~$ sudo mkdir /opt/samba/software_empresarial

  

 

Si hacemos un "ls", veremos que los permisos de los directorios son 755 (rwxr-xr-x) y que pertenecen al usuario root, por tanto, ningún usuario (excepto root) podrá escribir en ellos aunque en Samba digamos que si:

raul@debian:/opt/samba$ ls -l
total 12
drwxr-xr-x 2 root root 4096 jun 4 15:04 publico
drwxr-xr-x 2 root root 4096 jun 4 15:04 software_empresarial

  

 

A nivel de "Filesystem", es imposible escribir en el directorio "publico", solamente root puede hacerlo. Por tanto, debemos cambiar los permisos del directorio. Al ser un directorio totalmente público, debemos darle permisos de 777 (rwxrwxrwx):

raul@debian:/opt/samba$ chmod 777 publico

  

 

Por tanto, los dos directorios a nivel de sistema de ficheros quedan de la siguiente forma:

raul@debian:/opt/samba$ ls -l
total 12
drwxrwxrwx 2 root root 4096 jun 4 16:44 publico
drwxr-xr-x 2 root root 4096 jun 4 15:04 software_empresarial

 

 

6.- VERIFICAR LA CONFIGURACIÓN Y REINICIAR EL SERVICIO DE SAMBA

Para comprobar si la configuración está correcta, podremos hacer uso del parámetro "testparm" que nos muestra los errores o si todo está correcto:

raul@debian:/opt/samba$ testparm 
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Software Empresarial]"
Processing section "[Público]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
unix password sync = Yes
usershare allow guests = Yes
idmap config * : backend = tdb


[Software Empresarial]
comment = Software utilizado en la empresa
guest ok = Yes
path = /opt/samba/software_empresarial/


[Público]
comment = Carpeta pública de subida de ficheros
create mask = 0644
guest ok = Yes
path = /opt/samba/publico/
read only = No

  

 

Una vez que hemos comprobado que la configuración está correcta, debemos reiniciar el servicio de Samba para aplicar los cambios:

raul@debian:~$ sudo service smbd restart

 

 

7.- COMPROBAR RECURSOS DESDE WINDOWS

Ahora, desde el equipo Windows (en mi caso Windows7), abriremos el explorador de ficheros y haremos click en Red. A la derecha veremos todos los equipos de la red que se encuentran compartiendo algo. Haremos doble click en DEBIAN que es el servidor de GNU/Linux que hemos configurado en los pasos anteriores:

Compartir ficheros entre Linux y Windows con SambaEquipos en la Red

 

 

En la siguiente captura se pueden ver perfectamente los 2 recursos compartidos configurados:

Compartir ficheros entre Linux y Windows con SambaRecursos compartidos en DEBIAN

 

 

Ahora, hacemos una prueba para escribir en el directorio Público. Creamos un fichero de texto y vemos que efectivamente tenemos permisos de lectura/escritura:

Compartir ficheros entre Linux y Windows con SambaEscritura en recurso público

 

 

En al directorio de "Recurso Empresarial", podemos leer y descargar los ficheros, pero si probamos a escribir o borrar contenido, obtendremos un error:

Compartir ficheros entre Linux y Windows con SambaPermiso denegado en Software Empresarial

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar