Solución:
Creo que necesitas usar los siguientes parámetros:
# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664
# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775
Estaba buscando una buena explicación de cómo funcionan estas configuraciones, pero no pude encontrar nada mejor que man smb.conf
Tendrá que desplazarse un poco hacia abajo para ver esas opciones.
Básicamente, en pocas palabras, los permisos de Windows no son los mismos que los de Unix (Linux) y es un poco extraño cómo samba asigna los permisos.
Tuve el mismo problema, pero todo como directivas de máscara. No trabajar para mí (Samba 4.3.11):
create mask = 0664
force create mode = 0664
directory mask = 02775
force directory mode = 02775
La única opción que funcionó fue bajo el [global] o compartir sección:
inherit permissions = yes
Simplemente cambie todos los permisos de carpetas y archivos según sus necesidades, de modo que las carpetas y archivos futuros hereden los mismos permisos.
Después de muchas pruebas y errores, este es el código correcto para compartir el directorio samba usando grupos SGID y Unix. Si el usuario se conecta de forma anónima, obtiene r / o, si inicia sesión y es miembro del grupo asignado, obtiene r / w.
Tengo un grupo llamado ‘admin’ configurado como grupo principal para usuarios con privilegios de escritura, todos los demás obtienen derechos de solo lectura.
Obligo al usuario a que no lo use nadie, por lo que diferentes personas que trabajan en los mismos archivos no interfieren entre sí.
Configuré chmod 2755 en el directorio compartido, por lo que hereda los directorios creados con el mismo grupo ‘admin’
$ chmod -R 2755 /home/shares/test
Comprobando si todo está bien:
$ stat /home/shares/test
Access: (2755/drwxr-sr-x) Uid: (65534/ nobody) Gid: ( 1001/ admin)
Parte relevante de /etc/samba/smb.conf:
[test]
comment = test
path = /home/shares/test
force user = nobody
read only = No
create mask = 0664
force create mode = 0664
directory mask = 02775
force directory mode = 02775
Esta publicación me puso en el camino correcto, pero testparm reveló 4 directivas incorrectas, por lo que estoy compartiendo la configuración fija aquí. En samba, cuantas menos directivas especifique, mejor funcionará.