¿Qué es Samba?

Un servidor Samba es un servidor que utiliza el software homónimo de código abierto para co­n­fi­gu­rar di­re­c­to­rios Unix / Linux. Este tipo de se­r­vi­do­res im­ple­me­n­ta el protocolo SMB –Server Message Block, ac­tua­l­me­n­te Common Internet File System (CIFS)–, que ini­cia­l­me­n­te permitía compartir archivos, im­pre­so­ras y otros servicios en una red que usaba sistemas ope­ra­ti­vos Windows. Ahora Samba permite la in­te­gra­ción de Windows con sistemas Linux/Unix en una misma red, de tal forma que se puedan in­te­r­ca­m­biar archivos o se puedan utilizar di­fe­re­n­tes im­pre­so­ras in­de­pe­n­die­n­te­me­n­te del sistema operativo de los or­de­na­do­res de una red. Ya sea para Unix o para Linux, desde su cuarta versión, Samba asume el papel de Domain Co­n­tro­ller con Microsoft Active Directory, gracias al cual es posible la au­to­ri­za­ción y au­te­n­ti­ca­ción central de los equipos y los usuarios de una red.

Un Samba server está compuesto por di­fe­re­n­tes módulos para facilitar la co­n­fi­gu­ra­ción del protocolo SMB/CIFS. Su núcleo está compuesto por cuatro daemons (que se ejecutan siempre en un segundo plano):

  • samba: añadido con la versión 4, permite la ejecución de los Active Directory Domain Co­n­tro­lle­rs y es co­n­fi­gu­ra­ble desde smbd.conf
  • smbd: ofrece servicios para compartir archivos y procesos de impresión, se configura a través de smb.conf
  • nmbd: es el re­s­po­n­sa­ble de las pe­ti­cio­nes de servicio de nombres NetBIOSD para di­re­c­cio­nes IP, se configura con el archivo smb.conf
  • winbindd: resuelve la in­fo­r­ma­ción de grupos y usuarios y la hace en­te­n­di­ble para Unix/Linux; ofrece opciones de auto-co­n­fi­gu­ra­ción

Co­n­fi­gu­rar Samba paso a paso

SMB/CIFS es un protocolo estándar e intuitivo para recursos co­m­pa­r­ti­dos de red en Windows. Sin embargo, al in­te­r­ca­m­biar o liberar archivos con equipos en red que usan sistemas ope­ra­ti­vos Unix o Linux, se pueden presentar problemas. Un servidor Samba se encarga de resolver estos problemas de co­m­pa­ti­bi­li­dad, sirviendo como mediador entre los di­s­po­si­ti­vos in­di­vi­dua­les. Samba es una suite de apli­ca­cio­nes de código abierto, por lo que no se in­vo­lu­cran costes adi­cio­na­les. A co­n­ti­nua­ción se ex­pli­ca­rán los pasos ne­ce­sa­rios para co­n­fi­gu­rar Samba en un servidor.

Primer paso: In­s­ta­la­ción

En primer lugar se debe decidir si se quiere trabajar di­re­c­ta­me­n­te desde el servidor, o si se quiere operar desde un cliente de acceso remoto. El siguiente comando permitirá instalar el paquete Samba en el servidor:

apt-get install samba

Segundo paso: Agregar cuentas de usuario a la base de datos de Samba

Una vez se ha instalado Samba en el servidor, es necesario activar las re­s­pe­c­ti­vas cuentas de usuario. Algunas di­s­tri­bu­cio­nes de Linux si­n­cro­ni­zan las cuentas de usuario desde el sistema y las añaden au­to­má­ti­ca­me­n­te a la base de datos de Samba – por ejemplo, si el paquete libpam-smbpass ya ha sido instalado, la si­n­cro­ni­za­ción de co­n­tra­se­ñas Linux y SBM se mantiene. De lo contrario, será necesario gestionar ma­nua­l­me­n­te las cuentas de usuario para que estos puedan hacer uso de los servicios de red ne­ce­sa­rios.

La ad­mi­ni­s­tra­ción de las cuentas de usuario se controla a través del comando smbpasswd usando los pa­rá­me­tros -a, -x, -d y -e. La línea de comandos para ello, es la siguiente:

sudo smbpasswd -a NOMBRE DE USUARIO (CONTRASEÑA)
sudo smbpasswd -x NOMBRE DE USUARIO
sudo smbpasswd -d NOMBRE DE USUARIO
sudo smbpasswd -e NOMBRE DE USUARIO

Con el primer comando es posible añadir un usuario a los recursos co­m­pa­r­ti­dos de la red. Una vez in­tro­du­ci­do el nombre del usuario es posible añadir su re­s­pe­c­ti­va co­n­tra­se­ña. Esta puede ser idéntica o diferente a la co­n­tra­se­ña de Linux. El segundo comando permite eliminar un usuario de la base de datos, con el parámetro -d será des­ac­ti­va­do y con -e sera activado. El comando

sudo service smbd reload

carga nue­va­me­n­te las co­n­fi­gu­ra­cio­nes del servidor para guardar los cambios rea­li­za­dos.

Tercer paso: Co­n­fi­gu­rar el uso co­m­pa­r­ti­do de archivos

Permisos generales

Los permisos generales se pueden es­pe­ci­fi­car en el archivo de co­n­fi­gu­ra­ción del servidor Samba. Este archivo contiene todas las acciones ad­mi­ni­s­tra­ti­vas y es donde se almacenan las ca­ra­c­te­rí­s­ti­cas generales del servidor. Con el siguiente comando es posible abrir el archivo:

sudo gedit /etc/samba/smb.conf

El archivo smb.conf contiene muchos ejemplos de líneas de comando que, cuando están marcadas con un signo número (#) o un punto y coma (;), significa que no están activos. Para ac­ti­var­las solo será necesario eliminar los ca­rá­c­te­res es­pe­cia­les. Las nuevas entradas pueden ser añadidas al final del archivo, siempre y cuando el re­s­pe­c­ti­vo nombre bajo el cual estará di­s­po­ni­ble, se encuentre entre corchetes. Allí se de­s­pre­n­de­rá una segunda línea de comandos hacia el re­s­pe­c­ti­vo archivo y fi­na­l­me­n­te aquellas líneas de pa­rá­me­tros con las que se va a aplicar. Si deseas compartir, por ejemplo, una carpeta con fotos que permita la escritura a di­fe­re­n­tes usuarios, así como el acceso a invitados, deberás in­tro­du­cir lo siguiente en el smb.conf:

[Fotos]
path= /documentos/fotos
writeable = yes
guest ok = yes

Para guardar los cambios será necesario reiniciar Samba con el comando an­te­rio­r­me­n­te me­n­cio­na­do:

sudo service smbd reload

Permisos pe­r­so­na­les

Para poder es­ta­ble­cer au­to­ri­za­cio­nes es­pe­cí­fi­cas, los usuarios deben ser parte del grupo sa­m­ba­sha­re. Con el siguiente comando es posible agregar usuarios al grupo:

sudo usermod -aG sambashare NOMBRE DE USUARIO

Así, el usuario será incluido en el grupo tan pronto inicie sesión o reinicie Linux. Ahora sus mo­di­fi­ca­cio­nes no se al­ma­ce­na­rán en smb.conf, sino en archivos de texto separados – por lo general en la carpeta /var/lib/samba/use­r­sha­res. Cada uno de estos archivos contiene el sharename (nombre del recurso) y el di­re­c­to­rio de acceso, un co­me­n­ta­rio opcional, el usershare ACL (indica si los archivos son de solo lectura o si también pueden ser mo­di­fi­ca­dos), así como también un parámetro que indica quién tiene permitido el acceso y quién no. Un ejemplo de este tipo de comando, sería:

net usershare add Fotos /documentos/fotos vacaciones 2015 Everyone: r, USER1: f

Así, va­lié­n­do­se del anterior comando, se libera el archivo con el sharename “Fotos” en el di­re­c­to­rio “do­cu­me­n­tos/fotos”, junto con el co­me­n­ta­rio “va­ca­cio­nes 2015”. Todas las cuentas de usuario de un servidor Samba pueden leer los archivos, USER1 tiene todos los permisos y puede, además, gestionar los permisos de otros usuarios. Para comprobar lo anterior, es posible utilizar los si­guie­n­tes comandos:

net usershare list
net usershare info

El primer comando presenta una lista de todas las acciones que se tomaron en virtud del re­s­pe­c­ti­vo sharename, mientras el segundo ofrece una de­s­cri­p­ción más detallada de las mismas – in­clu­ye­n­do co­me­n­ta­rios, permisos, etc. Recuerda que en caso de que quieras realizar cambios en los permisos, deberás hacerlo siempre en la línea de comandos y nunca en el archivo de texto del usershare. Para eliminar una acción se usará entonces el comando:

net usershare delete SHARENAME

Servidor Samba: Windows y Linux en una misma red

Si el uso co­m­pa­r­ti­do de im­pre­so­ras y archivos resulta pro­ble­má­ti­co debido al uso de di­fe­re­n­tes sistemas ope­ra­ti­vos, la solución perfecta la ofrece la im­ple­me­n­ta­ción de Samba como software para clientes o como servidor.  Esta suite de software libre im­ple­me­n­ta el protocolo de red SMB / CIFS en sistemas Unix y Linux, lo que lo hace co­m­pa­ti­ble con la red de di­s­tri­bu­ción de Windows, ya sea como cliente o como servidor.

Un servidor Samba Linux regula el in­te­r­ca­m­bio de archivos y servicios en la red como un servidor de Windows –desde la versión 4 asume el papel de Domain Co­n­tro­ller con Microsoft Active Directory. Si deseas ad­mi­ni­s­trar y co­n­fi­gu­rar un servidor Samba, puedes hacerlo fá­ci­l­me­n­te de forma remota desde tu ordenador personal.

También tendrás la opción de trabajar di­re­c­ta­me­n­te con la línea de comandos o de instalar una interfaz gráfica adicional para facilitar la co­n­fi­gu­ra­ción.

Ir al menú principal