Vamos a explicaros en este pequeño manual como hacer una instalación del software gratuito Samba en una máquina Debian Doctores del PC :: Servicio Tecnico Reparacion Ordenadores a Domicilio :: Madridpara poder compartir carpetas, impresoras o lo que os apetezca entre ordenadores con Linux, Mac OS X o Unix en general con sistemas Windows o cualquier otro sistema.

Antes de nada comentar que 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 ordenadores con 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 autenticar con su propio archivo de usuarios.

Empezaremos con la instalación:

debian:/etc# apt-get install samba

Leyendo lista de paquetes… Hecho
Creando árbol de dependencias… Hecho
Se instalarán los siguientes paquetes extras:
samba-common
Paquetes recomendados
smbldap-tools
Se instalarán los siguientes paquetes NUEVOS:
samba samba-common
0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 5643kB de archivos.
Se utilizarán 13,4MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar

[S/n]? s

El entorno gráfico os hará un par de preguntas:

– La primera es sobre el Nombre del dominio o del grupo de trabajo en el cual queremos que el servidor aparezca cuando lo pregunten los clientes de la red. Poneís el nombre del dominio o del grupo de trabajo en que estéis.

– La segunda es para aquellos sistemas que reciban la dirección IP desde un servidor DHCP en la red. No es mi caso, así que lo dejo como viene, por defecto, es decir, No.      Configurando samba (3.0.24-6etch9) …
Generating /etc/default/samba…
tdbsam_open: Converting version 0 database to version 3.
account_policy_get: tdb_fetch_uint32 failed for field 1 (min password length), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 2 (password history), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 3 (user must logon to change password), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 4 (maximum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 5 (minimum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 6 (lockout duration), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 7 (reset count minutes), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 8 (bad lockout attempt), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 9 (disconnect time), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 10 (refuse machine password change), returning 0
Importing accout for root…ok
Importing accout for daemon…ok
Importing accout for bin…ok
Importing accout for sys…ok
Importing accout for sync…ok
Importing accout for games…ok
Importing accout for man…ok
Importing accout for lp…ok
Importing accout for mail…ok
Importing accout for news…ok
Importing accout for uucp…ok
Importing accout for proxy…ok
Importing accout for www-data…ok
Importing accout for backup…ok
Importing accout for list…ok
Importing accout for irc…ok
Importing accout for gnats…ok
Importing accout for nobody…ok
Importing accout for Debian-exim…ok
Importing accout for statd…ok
Importing accout for identd…ok
Importing accout for pruebas…ok
Importing accout for sshd…ok
Starting Samba daemons: nmbd smbd.

Ya está instalado, ahora vamos a hacer un par de configuraciones, y antes de nada recomiendo guardar una copia del archivo de configuración original.
debian:/# cd /etc/samba/

debian:/etc/samba# cp smb.conf smb.conf.ORIGINAL

Una vez guardado vamos a editarlo:

debian:/etc/samba# vi smb.conf

En esta parte vemos que aparece como grupo de trabajo DOCTORESDELPC, el grupo que habíamos puesto en nuestro caso, bien pues lo dejamos como esta.

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = DOCTORESDELPC

En la siguiente línea es donde podemos configurar y poner el nombre descriptivo del servidor que aparecerá en comentarios en nuestros sistemas clientes Windows.

# server string is the equivalent of the NT Description field
server string = %h server

Al final del documento os dejo una nota sobre el alta de usuarios ya que tenemos una sección de autenticación en el archivo de configuración del Samba, y se requiere una cuenta en Unix para cada usuario que vaya a acceder al servidor, en mi caso suelo hacerlo para el usuario Administrador de mis sistemas Windows, al final os digo como se añade.

####### Authentication #######

# «security = user» is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
;   security = user

Lo importante es descomentar la línea:

security =  user

Ahora vamos a permitir que se pueda usar la impresora que previamente habíamos añadido con CUPSYS a nuestro servidor Debian como ya habíamos visto en el anterior documento, Instalar la impresora HP LaserJet 1600 en Debian, para eso vamos a descomentar las siguientes líneas:

load printers = yes

printing = cups

printcap name = cups

También podemos ver más adelante que por defecto nos ha añadido esta configuración para las impresoras:

[printers] comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
public = no
writable = no
create mode = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers

[print$] comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

Pues bien lo vamos a dejar así:

[printers] comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
public = yes
writable = yes
create mode = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers

[print$] comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = yes

Hasta aquí ya tenemos todo configurado perfectamente.

Ahora tan sólo quedaría reiniciar la aplicación Samba para que carge nuestra nueva configuración.

debian:/etc/samba# /etc/init.d/samba restart

Ya esta todo listo, ya podemos utilizar nuestra impresora a través de nuestra red.

NOTA: Si intentáis utilizar la impresora desde un PC con Windows, tendréis que instalar los controladores.

ALTA DE CUENTAS DE USUARIO SAMBA (OPCIONAL)

Es importante sincronizar las cuentas entre el servidor Samba y las máquinas Windows de nuestra red. Es decir, si en una máquina con Windows nos logeamos con el usuario «Administrador» con clave de acceso «doctoresdelpc», en el servidor Samba deberá existir también dicha cuenta con ese mismo nombre y la misma clave de acceso, sino el cliente Windows nos pedirá la cuenta de usuario y la clave siempre que queramos acceder.

Como la mayoría de las cuentas de usuario que se utilizarán para acceder hacia Samba no requieren acceso al interprete de comandos del sistema, no es necesario asignar clave de acceso con el comando passwd y se deberá definir /sbin/nologin o bien /bin/false como interprete de comandos para la cuenta de usuario en cuestión.

useradd -s /sbin/nologin usuario-windows
smbpasswd -a usuario-windows

Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como serían Telnet, SSH, etc, es decir, que se permita acceso al interprete de comandos, será necesario especificar /bin/bash como interprete de comandos y además se deberá asignar una clave de acceso en el sistema con el comando passwd:

useradd -s /bin/bash usuario-windows
passwd usuario-windows
smbpasswd -a usuario-windows

En mi caso en particular quiero que sea para cualquier cuenta de Administrador con la misma clave para todos mis equipos, pero podéis hacer todo lo que queráis, en mi caso quedará:

debian:/etc/samba# useradd -s /sbin/nologin Administrador

Ahora añadimos uns password  al usuario Administrador que hemos creado:

debian:/etc/samba# smbpasswd -a Administrador
New SMB password:
Retype new SMB password:
Added user Administrador.

COMPARTIR CDROM Y CARPETAS O RUTAS ENTRE NUESTRO SERVIDOR DEBIAN Y  CLIENTES WINDOWS (OPCIONAL)

Hasta aquí ya tenemos todo configurado perfectamente, está parte es totalmente opcional:

Si queréis compartir la unidad de CD-ROM para todos vuestros equipos, tan sólo tenéis que descomentar estas líneas:

# A sample share for sharing your CD-ROM with others.[cdrom] comment = Samba server’s CD-ROM
writable = no
locking = no
path = /cdrom
public = yes

Esto también es a modo de nota, y totalmente opcional. Por ejemplo yo quiero compartir una unidad montada como BacKup, pues esta sería la manera de añadir unidades montadas o cualquier cosa que se os ocurra.

[Backup] comment = Backup en Servidor
writable = yes
path = /mnt/Backup
public = no
browseable = yes

NOTA: Revisar los permisos que tiene la ruta /mnt/Backup ya que debe tener permisos de lectura y escritura el usuario que hemos añadido con Samba.

http://us1.samba.org/samba/