Páginas

miércoles, 4 de marzo de 2015

Samba compartir archivos en un grupo de trabajo


Version recomendada 4.0 porque la 4.1 no contiene el modulo pam_smbpass disponible en el paquete samba4.

Autor : Ivan Voras

Configuracion inicial

La configuracion de Samba se realiza en un simple archivo de configuracion,
/usr/local/etc/smb4.conf cuyas opciones estan documentadas en smb4.conf(5) main paginas.

[global]
workgroup = MIOFICINA
server string = Servidor Trabajo
dos charset = cp852
unix charset = UTF-8
security = user
encrypt passwords = yes
socket options = TCP_NODELAY SO_RCVBUF=262144
SO_SNDBUF=262144
use sendfile = yes
use mmap = yes
unix extensions = no
wide links = yes
[homes]
comment = Home Directories
browseable = no
writeable = yes
directory mask = 0770
create mask = 0660
[public]
comment = Public
path = /srv/public
public = no
writeable = yes
write list = @wheel
directory mask = 0770
create mask = 0660

La estructura es similar a ficheros .INI de Windows.

Entre las secciones de configuracion globales:

- workgroup - el nombre de Windows (entorno de red)
- server string - descripcion que se muestra en el explorador de Windows
- dos charset - conjunto de caracteres utilizado por las aplicaciones no unicode en el lado cliente
- unix charset - conjunto de caracteres se utilizaran en el Servidor para almacenar nombre de archivos
- security - user es la utilizada en versiones de escritorio de Windows xp, 7.
- encrypt passwords - obliga a los clientes a transmitir solo contrasenas cifradas.
- socket options - define opciones de socket de red; desactiva algoritmo Nagle's y establece tamanos de bufer grande.
- use sendmail, use nmap - activa algunas optimizaciones genericas en el acceso a archivos y servicios
- unix extensions, wide links - extensiones unix sólo son útiles para los clientes Unix, no Windows.

Otra seccion especial es homes, establece el modo en que tradicionalmente los directorios home Unix seran automaticamente compartidos con samba y puede contener cualquier opciones de configuracion disponible para configurar comparticiones.

- comment - descripcion visible en el explorador de Windows
- browseable - los directorios de inicio que estaran visible en el explorador de Windows
- writeable - cualquier usuario bajo cualquier circunstancia podran escribir a este recurso compartidos
- directory mask - al crear nuevos directorios seran propiedad del usuario que los crea y su grupo de Unix se establecera en el grupo predeterminado de este usuario, pero los permisos de archivo de Unix se estableceran en la mascara de numero octal tradicional dada en esta directiva.
- create mask - similar a directory mask pero para archivos ordinarios.

La seccion public la configuraremos como un recurso compartido accesible a todos los usuarios del sistema grup "wheel" y la colocaremos en el directorio /srv/publico. Las opciones adicionales son:

- path - el directorio que sera compartido
- public - accesible sin contrasena
- write list - lista de usuarios o grupos (nombres de grupo con el prefijo @), que podran escribir en este recurso compartido (los usuarios tienen que tener los adecuados
permisos dentro del propio directorio).

Despues de creado el archivo smb4.conf, Samba tiene que ser activado agregando la siguiente linea al archivo /etc/rc.conf

samba_server_enable="YES"

Sincronizando usuarios

Samba tiene que asignar usuarios que los clientes Windows utilizan para los usuarios del sistema. En otras palabras, cada usuario Windows necesita ser usuario del sistema Unix
 para que coincidan. Los sistemas Unix y Windows almacenan las contrasenas en formatos totalmente incompatibles. Para resolverlo hay que mantener manualmente los usuarios FreeBSD
 y Sincronizar con una base de datos de usuarios Samba especifica mediante la utilidad sbmpasswd (una combinacion de adduser, deleuser, etc). Es una solucion simple recomendada
 para pequenas instalaciones con varios usuarios que rara vez cambian sus contrasenas. Hay que tener en cuenta que primero tendra que agregar un usuario FreeBSD y luego un
 usuario Samba con el mismo nombre con:

 "smbpasswd -a"

 Una segunda manera de hacer lo mismo es replicar las dos bases de datos de contrasenas. En este escenario, tanto la base de datos de usuarios FreeBSD como la de Samba existen en el mismo
 tiempo, pero las contrasenas son copiadas de uno a otro segun sea necesario. Agregar la linea siguiente:

 pam password change = yes

 a la seccion global de smb4.conf para permitir a los usuarios cambiar la contrasena de Windows, que Samba propagara a la base de datos de los usuarios del sistema FreeBSD.
 En el otro sentido (cambiar la contrasena del ususario del sistema y propagarla a la base de datos de los usuarios Samba se puede activar anadiendo la siguiente linea
 al archivo /etc/pam.d/system:

 auth optional
 /usr/local/lib/pam_smbpass.so migrate

 y la linea siguiente al archivo /etc/pam.d/passwd

 passwd required
 /usr/local/lib/pam_smbpass.so nullok use_authtok try_first_pass

 Esto permitirá a los usuarios a cambiar tanto su contraseña FreeBSD y Samba contraseña en
al mismo tiempo mediante la utilidad "passwd" , así como migrate (copia) su FreeBSD
contraseña para la base de datos Samba la próxima vez que inicien sesión.
Tenga en cuenta que usted todavía necesita para mantener la pertenencia a grupos fuera de Samba, en el /etc/group, y que los usuarios todavía tienen que ser creado con el argumento

smbpasswd -a

en la base de datos de Samba.

La ultima manera es tener la base de datos de usuario principal sólo en Samba, y utilizar el Winbind facilitado por Samba para que aquellos usuarios a disposición del sistema a través de los mecanismos PAM y NSS. De esta manera que, no es necesario crear o mantener usuarios y grupos FreeBSD, sólo los usuarios y grupos de samba, y FreeBSD los trata como si fueran usuarios locales del sistema .

Permisos de archivo

Listas ACL de estilo de Windows pueden introducirse añadiendo la opción de montaje " nfsv4acls " al sistema de archivos deseado, y permitiendo que el "zfsacl" VFS plugin smb4.conf, la entrada fstab debería tener este aspecto:

/dev/da0p2 / ufs rw,nfsv4acls 1 1

Las entradas adicionales para la seccion global en el archivo nfs4.conf son:

vfs objects = zfsacl
map acl inherit = Yes
inherit permissions = Yes
inherit acls = Yes
store dos attributes = Yes

Unix es genial!.

1 comentario:

  1. Buen día, tengo una pregunta. ¿Es necesario tener el mismo usuario UNIX y samba para poderle compartir cierto recursos de red? De ser asi, al tener una carpeta compartida en la cual yo le doy permisos a multiples usuarios o un grupo en general ¿podría solo crear usuarios samba y asociarlo a una sola cuenta unix?
    Gracias por la respuetsa.

    ResponderEliminar