Capítulo 2. Configuración de Samba

Tabla de contenidos

El archivo /etc/samba/smb.conf
Variables utilizables en smb.conf
Sección [global]
Sección [homes]
Optimización de Samba
Compartiendo una unidad Windows con máquinas Linux
Compartiendo una impresora de Windows con máquinas GNU/Linux
Compartiendo una impresora de GNU/Linux con máquinas Windows

El archivo /etc/samba/smb.conf

El archivo /etc/samba/smb.conf es la columna vertebral del Servidor Samba. Este fichero determina qué recursos del sistema se quieren compartir y qué restricciones se desea aplicar sobre ellos. Este fichero se divide en secciones, las cuáles quedan delimitadas por el nombre de la sección, que debe estar entre corchetes. Su estructura es muy parecida a la de los ficheros .INI de MS Windows. Cada una de las secciones de este archivo describe un servicio determinado, a excepción de tres secciones que no describen ningún servicio y que son opcionales:

  1. Sección [global], en esta sección se definen los parámetros globales del servidor, es decir, que afectarán a todos los servicios del servidor.

  2. Sección [homes], define el acceso a las cuentas de usuario, y el espacio en disco que tienen reservado en el servidor, generalmente en /home/<usuario>. Proporciona un método sencillo para que los usuarios que tienen una cuenta en el servidor Samba (Linux) accedan sin configurar apenas nada.

  3. Sección [printers], que engloba a todas las impresoras, de forma que el servidor utiliza estos parámetros para las impresoras instaladas en el servidor (en /etc/printcap).

Todos los recursos compartidos se definen en secciones separadas que comienzan con el nombre con el que el recurso compartido va a ser visible desde la red, encerrado entre corchetes (y que no puede tener más de 12 caracteres).

Dentro de la configuración es posible utilizar variables para expandirla y añadirle complejidad, con lo que se pueden definir comportamientos dependientes de la máquina del cliente, del usuario que accede al servicio, etc.

Después de hacer cualquier modificación, es importante ejecutar el programa testparm, para probar que la configuración no tiene errores. Si este programa no da aviso de que hay problemas, devuelve la lista de servicios disponibles en el servidor.

smbstatus es un programa que devuelve la lista de todas las conexiones activas a Samba en el servidor local.

Variables utilizables en smb.conf

  1. %S, nombre del servicio actual, si lo hay.

  2. %P, directorio raíz del servicio actual, si lo hay.

  3. %u, nombre de usuario del servicio actual.

  4. %g, grupo principal de %u.

  5. %U, nombre de sesión del usuario (el que desea el cliente).

  6. %G, grupo principal de %U.

  7. %H, directorio raíz (home) del usuario %u.

  8. %v, versión de Samba.

  9. %h, nombre del servidor donde Samba está ejecutándose.

  10. %m, nombre NetBios de la máquina cliente.

  11. %L, nombre NetBios del servidor.

  12. %M, nombre de Internet de la máquina cliente.

  13. %d, número de proceso del servidor actual.

  14. %a, arquitectura de la máquina cliente. Sólo reconoce algunas: Samba, WfWg, WinNT y Win95. Cualquier otra cosa la reconoce como UNKNOWN.

  15. %I, dirección IP de la máquina cliente.

  16. %T, fecha y hora actuales.

Sección [global]

A continuación, se detallan los parámetros más importantes de la sección.

  1. workgroup, indica el nombre del grupo de trabajo (o dominio) en el que se quiere que funcione Samba. Ejemplo:

    workgroup = NetSystems2000
    
  2. encrypt passwords = no, evita que los passwords no se pasen como texto plano. Ponerlo a yes si se tienen clientes W98 ó NT4/2000.

  3. server string, es una cadena de caracteres que describe a la máquina, y que aparecerá como comentario en los clientes Windows. Ejemplo:

    server string = NetSystems 2000 Internet Server ...
    
  4. log file, permite que se cree un fichero de log por cada máquina que se conecta. Ejemplo:

    log file = /var/log/samba.log.%m
    
  5. security, indica el tipo de seguridad que empleará el servidor y puede tomar tres valores:

    1. user, que requiere que la máquina cliente se identifique con un nombre de usuario y una contraseña válida antes de conectarse al recurso compartido. Es el valor más adecuado.

    2. Share, que sólo espera una contraseña válida para conectarse a un recurso.

    3. Server, que es igual que el user pero la autenticación del usuario se relega a otra máquina Windows NT.

      Importante

      En el caso de que se opte por este valor, habrá que añadir otra línea al /etc/smb.conf, que es:

      password server = <máquina>
      

      Ejemplo:

      security = user
      
  6. domain controller, que permite especificar un controlador principal de dominio, en el caso de que lo haya. Ejemplo:

    domain controller = mintserver
    
  7. netbios name, es el nombre bajo el que el servidor Samba aparecerá en los clientes Windows. Ejemplo:

    netbios name = SuSE10Linux
    
  8. wins support, indica si se desea que el servidor Samba actúe como un servidor WINS.

  9. wins server = <host>, indica qué máquina actúa como servidor WINS. Es decir, se supone que la máquina que ejecute Samba actuará como cliente WINS.

Sección [homes]

  1. guest ok, si un servicio tiene este parámetro habilitado, Samba no pedirá password para él. Ejemplo:

    guest ok = yes
    
  2. valid users, limita el acceso a un servicio a los usuarios que pertenezcan a la lista. Ejemplo:

    valid users = juan,pepe,antonio
    
  3. hosts allow, permite restringir las máquinas que podrán acceder a un determinado servicio. Ejemplo:

    hosts allow = 192.168.30
    

    permite que todas las máquinas de esa subred accedan mientras que hosts allow = 192.168.30.100 permite que sólo esa máquina acceda.

    Importante

    Puede aparecer también en un servicio.

  4. comment, permite añadir un comentario al recurso que luego puede verse desde el Explorador de Windows.

  5. browseable, define si un recurso es visto cuando se listen los recursos compartidos por el equipo.

  6. writable, permite que los equipos que se conecten al recurso puedan escribir en él, crear carpetas, borrar, etc.

  7. path = <ruta>, permite indicar el directorio físico real al cuál se accederá cuando se acceda al recurso compartido. Hay que tener cuidado con la máscara de permisos que tenga este directorio porque dependiendo de ella, dicho directorio pudiera no verse adecuadamente desde las máquinas Windows.

  8. printable, permite imprimir en un recurso que sea una impresora.

  9. public, define si un recurso es visible sólo para los usuarios autentificados (public = no) o para cualquiera que se conecte al equipo con Samba (public = yes).

  10. create mode, permite especificar la máscara de permisos que tendrán los archivos que se vayan a crear en un determinado recurso.

    Importante

    directory mode hace exactamente lo mismo, pero para directorios.