Cómo instalar y configurar Samba (mediante SMB permite compartir archivos e impresoras en Linux para acceso desde Windows) y Swat (herramienta de administración Web de Samba) en Linux Ubuntu. Os explicamos cómo compartir una carpeta en Linux para que sea accesible desde Windows.

Samba es una aplicación Unix/linux que, mediante el protocolo SMB (Server Message Block), permite los siguientes servicios en un PC con Unix/Linux:

  • Compartir uno o más sistemas de archivos.
  • Compartir impresoras, instaladas tanto en el servidor como en los clientes.
  • Ayudar a los clientes, con visualizador de Clientes de Red.
  • Autentificar clientes logeándose contra un dominio Windows.
  • Proporcionar o asistir con un servidor de resolución de nombres WINS.

De esta forma, un equipo Linux con Samba instalado y configurado podrá pasar como si de un equipo Windows se tratara (en cuanto a recursos compartidos). Se podrá acceder desde un equipo Windows a las carpetas/impresoras compartidas en un equipo Linux con Samba como si de dos equipos Windows se tratara. De esta forma no será necesario transferir ficheros mediante ftp u otros métodos más pesado, será suficiente con acceder a «Mis sitios de red» y buscar el equipo Linux.

En primer lugar deberemos instalar Samba y Swat en Linux, pues normalmente no vienen instalados por defecto. Para instalarlo (en el caso de distribuciones Debian, en concreto Ubuntu) abriremos una ventana de Terminal, desde «Aplicaciones» – «Accesorios» – «Terminal». En esta ventana escribiremos:

sudo apt-get install inetd samba samba-common smbclient swat

Nota 1: colocando «sudo» delante del comando «apt-get» no será necesario iniciar sesión con superusuario root, puede que nos pida la contraseña del usuario root para ejecutar el comando apt-get.

Nota 2: si no encuentra alguno de los paquetes a instalar será necesario añadir el repositorio correspondiente en el fichero /etc/apt/sources.list, puede ver el contenido de este fichero pulsando aquí. Si el contenido no es el mismo puede hacer una copia del actual y reemplazarlo con el que le mostramos abajo, después es conveniente actualizar la caché para poder instalar Samba. Para actualizar la caché pondremos:

apt-get update

Puede ver el resultado del comando pulsando aquí.

Una vez instalado Samba y Swat, podremos visualizar el archivo de configuración de Samba con el comando:

cat /etc/samba/smb.conf

A continuación crearemos un usuario para Samba mediante el comando:

smbpasswd -a nombreusuario

nos pedirá la contraseña y reintroducirla:

New SMB password:
Retype new SMB password:

Es conveniente reiniciar el equipo, aunque a veces funciona sin hacerlo. Llegados a este punto accederemos a la administración Web de Samba (Swat), para ello abriremos Firefox (navegador Web) y escribiremos en el campo de dirección:

http://localhost:901

nos pedirá usuario y contraseña, para poder configurar Samba de forma completa deberemos acceder con el superusuario root:

Acceso a Swat (usuario y contraseña)

La ventana inicial de Swat tiene este aspecto:

Swat Samba vía Web

Cabe mencionar que Swat es accesible desde cualquier PC de la red con Windows o Linux, introduciendo la IP del equipo Linux o el nombre de red (si ya hemos configurado Samba) con Samba en Internet Explorer (o el navegador de Internet que utilicemos):

Acceso a Swat (usuario y contraseña) desde Windows

Desde esta ventana podremos compartir carpetas de Linux para que estén visibles en la red de Windows, compartir impresoras, administrar usuarios, etc. Todo ello de forma relativamente sencilla.

En primer lugar indicaremos el grupo de trabajo, el nombre NetBios del equipo en la red, etc. Para ello pulsaremos en el icono «Globals»:

Globals

Indicaremos el grupo de trabajo en «Workgroup», el nombre de red en «netbios name» y otras opciones. Una vez modificadas pulsaremos «Commit Change» para guardar y aplicar los cambios:

Configuración Global Samba

Pulsando el icono «Status» Acceso a estado del servidor Samba podremos ver los usuarios conectados, los usuarios denegados, cerrar conexión de usuarios, etc:

Server Status Samba

Os explicaremos a continuación cómo compartir una carpeta con Swat. Para ello accederemos a la administración web de Samba (Swat) tal y como hemos indicado anteriormente, pulsaremos en el icono «Shares»:

Shares

para compartir una carpeta existente en Linux pulsaremos en el cuadro de texto que aparece a la derecha de «Create Share» e introduciremos el nombre que tendrá el recurso compartido, en nuestro caso «compartida_linux», pulsaremos en «Create Share» para mostrar las opciones de configuración del nuevo recurso compartido:

Shares Parameters

El dato obligatorio para compartir una carpeta es «path» (la ruta de la carpeta existente en linux que queramos compartir, en nuestro caso /home/alonso/Desktop/compartida):

Configuración carpeta compartida

Pero, por supuesto, también podremos indicar un comentario aclaratorio en «comment», si se permitirá modificación de los datos de la carpeta «read only», podremos indicar también los equipos de la red a los que permitiremos el acceso en «hosts allow», los equipos a los que les denegaremos el acceso «hosts deny», también podremos indicar si queremos activar los log (auditoria de acceso) para esta carpeta en «EventLog Options» – «available» y otras muchas opciones. Podremos mostrar las opciones avanzadas pulsando en el botón «Avanced» de la parte superior de la ventana «Share Parameters». Tras introducir las opciones de la carpeta compartida pulsaremos el botón «Commit Changes» para guardar y aplicar los cambios.

Para probar el acceso a la carpeta compartida desde un equipo con Windows XP, accederemos a «Mis sitios de red» – «Toda la red» – «Red de Microsoft Windows» y haremos doble clic sobre el grupo de trabajo al que pertenezca el equipo de Linux:

Acceso recurso compartido desde Windows a Linux

dentro de este grupo nos aparecerá nuestro equipo Linux (en nuestro caso «pclinux server (Samba, Ubuntu) (pclinux)»):

Acceso recurso compartido desde Windows a Linux

Haciendo doble clic sobre este equipo nos aparecerán las carpetas e impresoras compartidas de Linux. También es perfectamente accesible introduciendo el nombre del equipo linux en «Inicio» – «Ejecutar» de la siguiente forma:

\nombre_equipo_linux

Acceso recurso compartido desde Windows a Linux

Lógicamente, dentro de «compartida_linux» podremos ver los ficheros que hayamos copiado en Linux, en la carpeta:

/home/alonso/Desktop/compartida

por supuesto, podremos trabajar en esta carpeta como si de una carpeta Windows se tratara, podremos copiar, pegar, eliminar, modificar los ficheros existentes en ella (según los permisos que le hayamos dado):

Acceso recurso compartido desde Windows a Linux

ANEXO

* Contenido del fichero /etc/apt/sources.list:

deb http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
## Uncomment the following two lines to add software from the ‘universe’
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
# deb http://es.archive.ubuntu.com/ubuntu/ edgy universe
# deb-src http://es.archive.ubuntu.com/ubuntu/ edgy universe
## Uncomment the following two lines to add software from the ‘backports’
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
# deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
# deb http://security.ubuntu.com/ubuntu edgy-security universe
# deb-src http://security.ubuntu.com/ubuntu edgy-security universe
deb http://www.getautomatix.com/apt edgy main
#AUTOMATIX REPOS START
deb http://archive.canonical.com/ubuntu edgy-commercial main
deb http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy-updates universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy universe multiverse
#AUTOMATIX REPOS END
deb http://nvidia.limitless.lupine.me.uk/ubuntu edgy stable
deb http://ubuntu.beryl-project.org/ edgy main
alonso@pclinux:~$ pwd
/home/alonso
alonso@pclinux:~$ cat /etc/apt/sources.list
deb http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
## Uncomment the following two lines to add software from the ‘universe’
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
# deb http://es.archive.ubuntu.com/ubuntu/ edgy universe
# deb-src http://es.archive.ubuntu.com/ubuntu/ edgy universe
## Uncomment the following two lines to add software from the ‘backports’
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
# deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
# deb http://security.ubuntu.com/ubuntu edgy-security universe
# deb-src http://security.ubuntu.com/ubuntu edgy-security universe
deb http://www.getautomatix.com/apt edgy main
#AUTOMATIX REPOS START
deb http://archive.canonical.com/ubuntu edgy-commercial main
deb http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy-updates universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy universe multiverse
#AUTOMATIX REPOS END
deb http://nvidia.limitless.lupine.me.uk/ubuntu edgy stable
deb http://ubuntu.beryl-project.org/ edgy main
alonso@pclinux:~$ clear~
bash: clear~: orden no encontrada
alonso@pclinux:~$ clear
alonso@pclinux:~$ cat /etc/apt/sources.list
deb http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
## Uncomment the following two lines to add software from the ‘universe’
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
# deb http://es.archive.ubuntu.com/ubuntu/ edgy universe
# deb-src http://es.archive.ubuntu.com/ubuntu/ edgy universe
## Uncomment the following two lines to add software from the ‘backports’
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
# deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
# deb http://security.ubuntu.com/ubuntu edgy-security universe
# deb-src http://security.ubuntu.com/ubuntu edgy-security universe
deb http://www.getautomatix.com/apt edgy main
#AUTOMATIX REPOS START
deb http://archive.canonical.com/ubuntu edgy-commercial main
deb http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy-updates universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu edgy universe multiverse
#AUTOMATIX REPOS END
deb http://nvidia.limitless.lupine.me.uk/ubuntu edgy stable
deb http://ubuntu.beryl-project.org/ edgy main

* Resultado comando sudo apt-get install inetd samba samba-common smbclient swat:

Leyendo lista de paquetes… Hecho
Creando Árbol de dependencias
Leyendo información de estado… Hecho
Nota, seleccionando inetutils-inetd en lugar de inetd
Paquetes sugeridos:
smbfs
Paquetes recomendados
smbldap-tools
Se instalarán los siguientes paquetes NUEVOS:
inetutils-inetd samba samba-common smbclient swat
0 actualizados, 5 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0B/9610kB de archivos.
Se utilizarán 24,2MB de espacio de disco adicional después de desempaquetar.
Preconfigurando paquetes …
Seleccionando el paquete inetutils-inetd previamente no seleccionado.
(Leyendo la base de datos …
119986 ficheros y directorios instalados actualmente.)
Desempaquetando inetutils-inetd (de …/inetutils-inetd_2%3a1.4.3+20051212-4_i386.deb) …
Seleccionando el paquete samba-common previamente no seleccionado.
Desempaquetando samba-common (de …/samba-common_3.0.22-1ubuntu4.1_i386.deb) …
Seleccionando el paquete samba previamente no seleccionado.
Desempaquetando samba (de …/samba_3.0.22-1ubuntu4.1_i386.deb) …
Seleccionando el paquete smbclient previamente no seleccionado.
Desempaquetando smbclient (de …/smbclient_3.0.22-1ubuntu4.1_i386.deb) …
Seleccionando el paquete swat previamente no seleccionado.
Desempaquetando swat (de …/swat_3.0.22-1ubuntu4.1_i386.deb) …
Configurando inetutils-inetd (1.4.3+20051212-4) …
* Starting internet superserver inetd [ ok ]
Configurando samba-common (3.0.22-1ubuntu4.1) …
Configurando samba (3.0.22-1ubuntu4.1) …
* Starting Samba daemons… [ ok ]
Configurando smbclient (3.0.22-1ubuntu4.1) …
Configurando swat (3.0.22-1ubuntu4.1) …

* Contenido del fichero de configuración de samba smb.conf después de compartir algunas carpetas:

# Samba config file created using SWAT
# from 0.0.0.0 (0.0.0.0)
# Date: 2007/03/19 21:59:10
[global]
workgroup = GRUPO
server string = %h server (Samba, Ubuntu)
obey pam restrictions = Yes
passdb backend = tdbsam
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:* %n
*RetypesnewsUNIXspassword:* %n
*passwordsupdatedssuccessfully* .
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
invalid users = root
[printers]
comment = All Printers
path = /tmp
create mask = 0700
printable = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[compartida_linux]
comment = carpeta compartida en linux
path = /home/alonso/Desktop/compartida
read only = No

* Versión de Samba instalada (obtenida con el comando aptitude show samba):

Paquete: samba
Estado: instalado
Instalado automáticamente: no
Versión: 3.0.22-1ubuntu4.1
Prioridad: opcional
Sección: net
Desarrollador: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
Tamaño sin comprimir: 7569k
Depende de: samba-common (= 3.0.22-1ubuntu4.1), netbase, logrotate, libacl1 (>= 2.2.11-1), libattr1 (>= 2.4.4-1), libc6 (>=
2.4-1), libcomerr2 (>= 1.33-3), libcupsys2 (>= 1.2.3), libgnutls13 (>= 1.4.0-0), libkrb53 (>= 1.4.2), libldap2
(>= 2.1.17-1), libpam0g (>= 0.76), libpopt0 (>= 1.10), zlib1g (>= 1:1.2.1), debconf (>= 0.5) | debconf-2.0,
libpam-runtime (>= 0.76-13.1), libpam-modules, lsb-base (>= 3.0-6)
Recomienda: smbldap-tools
Remplaza: samba-common (<= 2.0.5a-2)
Descripción: a LanManager-like file and printer server for Unix
The Samba software suite is a collection of programs that implements the SMB/CIFS protocol for unix systems, allowing you to
serve files and printers to Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred to as the LanManager
or NetBIOS protocol.
This package contains all the components necessary to turn your Debian GNU/Linux box into a powerful file and printer

server.
Currently, the Samba Debian packages consist of the following:
samba – LanManager-like file and printer server for Unix.
samba-common – Samba common files used by both the server and the client.
smbclient – LanManager-like simple client for Unix.
swat – Samba Web Administration Tool
samba-doc – Samba documentation.
samba-doc-pdf – Samba documentation in PDF format.
smbfs – Mount and umount commands for the smbfs (kernels 2.2.x and above).
libpam-smbpass – pluggable authentication module for SMB/CIFS password database
libsmbclient – Shared library that allows applications to talk to SMB/CIFS servers
libsmbclient-dev – libsmbclient shared libraries
winbind: Service to resolve user and group information from Windows NT servers
python2.4-samba: Python bindings that allow access to various aspects of Samba
It is possible to install a subset of these packages depending on your particular needs. For example, to access other
SMB/CIFS servers you should only need the smbclient and samba-common packages.