[Solucionado] Samba con clientes Windows y Linux

Todo lo relacionado con hacer funcionar a Arch como servidor de lo que sea (pagina web, ftp, archivos, firewall & router, etc...).
Responder
evilside
Archer
Archer
Mensajes: 52
Registrado: 09 Nov 2010, 02:15

[Solucionado] Samba con clientes Windows y Linux

Mensaje por evilside » 23 May 2013, 13:05

Hola

Tengo un servidor Samba con Archlinux. He creado usuarios y grupos unix en el servidor con el objeto de definir permisos específicos en cada subcarpeta de la carpeta compartida mediante ACL. Esto ya lo he hecho varias veces sin problemas en entornos que tienen sólo clientes Windows.

El problema lo tengo ahora que tengo clientes con Archlinux. cuando montan la unidad mediante CIFS los clientes reconocen que el Servidor también es Linux y ajustan permisos directamente en el sistema de archivos del servidor, no respetan los permisos por defecto que he definido mediante ACL. He usado las opciones noperm, nosetuids y cifsacl pero no funcionan.

Este es el comando que estoy usando para montar, tiene cifs-utils v6.0-1:

Código: Seleccionar todo

mount.cifs //FILE-SERVER/files /home/pepito/File-Server -o credentials=/home/pepito/.smbcred,noperm,nosetuids,cifsacl
Este es el archivo de configuración de Samba v3.6.4-1:

Código: Seleccionar todo

[global]
	workgroup = Myworkgroup
	security = USER
	preferred master = Yes
	domain master = Yes
	load printers = no
[files]
	path = /opt/files
	read only = No
Como ejemplo, tengo la subcarpeta "Conta" con estas ACL:

Código: Seleccionar todo

# file: Conta/
# owner: root
# group: root
user::rwx
group::rwx
group:contabilidad:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:contabilidad:rwx
default:mask::rwx
default:other::---
Cuando el usuario pepito crea un nuevo archivo queda con estos permisos:

Código: Seleccionar todo

# file: hola
# owner: pepito
# group: pepito
user::rw-
group::rwx			#effective:r--
group:contabilidad:rwx		#effective:r--
mask::r--
other::---
No hereda los permisos por defecto, esto produce que el resto de los usuarios del grupo contabilidad no puedan modificar el archivo. Al parecer la máquina con Linux crea los archivos según la mascara predeterminada y omite las ACL. Esto no pasaba antes cuando se usaba smb en vez de cifs, en ese tiempo utilizaba smbnetfs para montar la carpeta y todo funcionaba bien pero ahora Archlinux solo funciona con CIFS y smbnetfs está roto porqué no le sirve la librería de CIFS.

He probado montando la unidad con gvfs-smb que usa Thunar y Nautilus y este funciona bien, pero cuando lo uso Libreoffice se queda pegado al abrir los archivos compartidos, ese es otro tema por el cual abrí otro hilo.

Lo que quiero saber es como puedo hacer para que los clientes Linux monten la carpeta compartida sin meterse con los permisos de Linux.

Espero alguien me puedan ayudar, llevo varia semanas tratando de solucionar el problema.
Última edición por evilside el 26 Ago 2013, 22:13, editado 3 veces en total.

Avatar de Usuario
Spooky
Equipo Hispano
Equipo Hispano
Mensajes: 1774
Registrado: 18 Nov 2010, 23:33
Ubicación: Behind your computer

Re: Samba con clientes Windows y Linux

Mensaje por Spooky » 24 May 2013, 17:17


evilside
Archer
Archer
Mensajes: 52
Registrado: 09 Nov 2010, 02:15

Re: Samba con clientes Windows y Linux

Mensaje por evilside » 26 Ago 2013, 22:02

La máscara por defecto era el problema por el cual los archivos creados por los clientes Linux no asumían las ACL. Mas info: http://huevas.wordpress.com/2008/01/05/ ... nux-umask/.

En el archivo /etc/profile del servidor he cambiado el umask

Código: Seleccionar todo

umask 007
Esto es para que Samba pueda crear los archivos y carpetas con la máscara que le especifico luego en su archivo de configuración /etc/samba/smb.conf:

Código: Seleccionar todo

[global]
   workgroup = Myworkgroup
   security = USER
   preferred master = Yes
   domain master = Yes
   load printers = no
[files]
        path = /opt/files
        read only = No
        create mask = 0770
        directory mask = 0770
Luego hay que crear los usuarios, En servidor:

Código: Seleccionar todo

useradd -M -d /opt/files -s /bin/false -u 1015 pepito
passwd pepito
smbpasswd -a pepito
gpasswd -a pepito contabilidad
Esto crea un usuario y grupo llamado "pepito", tienen uid y gid 1015 . (No les creo ni carpeta de usuario, ni le asigno linea de comando ya que solo son para usar samba)

En cliente:

Código: Seleccionar todo

useradd -m -u 1015 pepito
En el cliente se crea el usuario de forma normal procurando asignar el mismo UID que se le dio en el servidor.

Luego he logrado montar correctamente en los equipos clientes con este comando, el archivo .smbcred tiene el usuario y contraseña:

Código: Seleccionar todo

mount.cifs \\file-server\files /home/pepito/File-Server -o uid=pepito,gid=pepito,credentials=/home/pepito/.smbcred,file_mode=0777,dir_mode=0777
De esta forma el usuario crea archivos y directorios bajo la propiedad de su usuario y grupo específico con máximos permisos, eso le permite a la capa ACL en el servidor heredarles los permisos por defecto que están especificados en al carpeta donde se crea el archivo (Permisos iguales o más restringidos).

Sé que no está explicado muy claro pero creo que quien esté metido en este tema lo entenderá.

agrelot
Archer
Archer
Mensajes: 38
Registrado: 25 Mar 2011, 21:16

Re: [Solucionado] Samba con clientes Windows y Linux

Mensaje por agrelot » 07 Feb 2014, 10:37

Gracias evilside por subir la solución al problema.
Muy útil.

Responder