Configuración de Samba

El siguiente paso es compartir los directorios para que los usuarios puedan acceder a los contenidos de las carpetas. Con este fin vamos a configurar el servicio samba para que nuestro Linux actúe como servidor principal de dominio .

La sección printers

Esta sección funciona como la ``[homes]'', pero para impresoras.

Si aparece una sección [printers] en el fichero de configuración, los usuarios podrán conectar a cualquier impresora especificada en el fichero printcap del host local.

Cuando se solicita una conexión, se verifican los servicios existentes. Si se verifica alguno, se usa. Si no se encuentra ninguno, pero hay una sección ``[printers]'' se usa como se describió anteriormente. En otro caso, el nombre de servicio solicitado se trata

como un nombre de impresora y se mira en el fichero printcap apropiado para ver si el nombre de servicio solicitado es un nombre de impresora válido. Si se encuentra, se crea un nuevo servicio duplicando la sección de [printers].

Se efectúan algunas modificaciones a la nueva sección creada:

  • El nombre de servicio se asigna como el nombre de la impresora.

  • Si no se da nombre de impresora, se usa el nombre de impresora localizado.

  • Si el servicio no permite acceso de invitados y no se da nombre de usuario, el nombre de usuario se asigna como el nombre de impresora localizado.

Observe que el servicio [printers] debe ser ``printable'', si especifica otro, el servidor no cargará el fichero de configuración.

Normalmente el ``path'' indicado sería un directorio de spool, con permisos de escritura globales con el sticky bit activado. Una sección [printers] típica se parecería a los siguiente:

                 [printers]
                      path = /usr/spool/public
                      writable = no
                      public = yes
                      printable = yes

Usuarios de samba

Para que un usuario del sistema sea usuario de samba tenemos que agregarlo explícitamente con la orden smbpasswd.

Para añadir un usuario tendremos que ejecutar:

smbpasswd -a usuario

Si omitimos la opción -a entonces simplemente se cambia la contraseña para samba del usuario.

La lista de usuarios de samba se almacena en el fichero /etc/samba/smbpasswd o bien según indiquemos en el parámetro passwd backend.

Usuarios virtuales

Existe la posibilidad de asignar múltiples nombres a un mismo usuario en el fichero /etc/samba/smbusers. Por ejemplo:

# Unix_name = SMB_name1 SMB_name2 ...

root = administrator admin

nobody = guest pcguest smbguest

indicaría que los usuarios reales serían root y nobody, pero los usuarios admin y administrator serían en realidad el usuario root.

Puede resultar útil si varias personas tienen que acceder a los mismos datos crear una sola cuenta en samba y luego asignarle diferentes nombres en este fichero.

Nuestro fichero smb.conf

El contenido del fichero smb.con que vamos a utilizar para nuestro trabajo va a ser el siguiente. A continuación se describe el significado de las líneas más significativas:

# Configuración PDC

[global]

# tipo de servidor y sesiones
        workgroup = CENTRO
        netbios name = web
        server string = Servidor Samba para la Web
        security = user
        domain logons = Yes
        os level = 99
        preferred master = Yes
        domain master = Yes
        logon script = %U.bat
        logon drive = h:
       logon home = \\%N\%U
        logon path =
        add share command=/usr/local/sbin/modify_samba_config.pl
        delete share command=/usr/local/sbin/modify_samba_config.pl
# usuarios
        passdb backend = smbpasswd tdbsam
        username map = /etc/samba/smbusers
        password level = 1
        username level = 1
        encrypt passwords = yes
        unix password sync = Yes
        min password length=4
        passwd program = /usr/bin/passwd %u
        passwd chat = *ew\sUNIX\spassword* %n\n *etype* %n\n *all\sauthentication\stokens\supdated\ssuccessfully*
        admin users = root, Administrator, pfabrega, Administrador
        add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -g samba -M %u 
        add group script = /usr/sbin/groupadd %g
        add user to group script =  /usr/sbin/adduser -G %g %u
        add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
        delete user script = /usr/sbin/userdel -r "%u"
        delete group script = /usr/sbin/groupdel "%g"
        delete user from group script = /usr/sbin/groupmod -x "%u" "%g"
        set primary group script = /usr/sbin/usermod -g "%g" "%u"
        add machine script = /usr/sbin/useradd -w "%u"
# parámetros generales
        root directory = /
        bind interfaces only = Yes
        read bmpx = Yes
        socket options = TCP_NODELAY  SO_SNDBUF=4096 SO_RCVBUF=4096
        time server = Yes
        remote announce = 192.168.0.255
        hosts allow = 192.168.1., 192.168.0., 127.
        wins support = Yes
        lock directory = /var/lock/samba
        map acl inherit = Yes
#impresión
        printcap name = CUPS
        printing = cups
        show add printer wizard = No
        lpq command = lpstat -o %p
        lprm command = cancel %p-%j
# registro de incidencias
        log level = 1
        log file = /var/log/samba/log.%m
        max log size = 50
[homes]
        comment = Home Directories
        read only = No
        hide files = /.*.*/
        browseable = No
[netlogon]
        comment = Network Logon Service
        path = /home/netlogon
        read only = No
        guest ok = Yes
[Profiles]
        path = /home/%U/profile
        browseable = No
[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        browseable = No
[direccion]
        path = /var/www/html/direccion
        browseable = No

read only = No

[secretaria]
        path = /var/www/html/secretaria
        browseable = No

read only = No

[datos]
        path = /var/datos
        browseable = Yes

read only = Yes

Workgroup

Este parámetro controla en qué grupo de trabajo aparecerá su servidor cuando sea consultado por los clientes. En nuestro caso:

workgroup = CENTRO