Tengo un recurso compartido de Samba que contiene muchas carpetas como esta:
share
- folderA
- folderB
- folderC
- folderD
Hay alrededor de 20 usuarios accediendo a esos recursos compartidos. Cada usuario puede tener acceso individual a algunos de los directorios, por ejemplo, Ben puede acceder a la carpeta A y la carpeta C, pero no a la carpeta B y la carpeta D. Jenny puede acceder a la carpeta B y la carpeta C, y así sucesivamente.
No quiero que los usuarios monten cada carpeta que necesitan. Quiero que monten la carpeta "compartir" que contiene todas las subcarpetas. El acceso se limita al establecer los permisos de Linux.
Creé un grupo para cada subdirectorio y agregué los usuarios a esos grupos. El control de acceso funciona perfectamente para archivos existentes. Pero cada vez que un usuario crea un archivo en un subdirectorio, se le niega a cualquier otro usuario que tenga permiso para acceso de lectura / escritura en ese directorio. Para resolver esto, jugué con el enmascaramiento de samba, pero no puedo hacer que funcione.
Mi conf Samba se ve así:
guest ok = no
[global]
workgroup = WORKGROUP
security = user
encrypt passwords = yes
[Share]
path = /var/samba
valid users = @everybody
read only = no
writeable = yes
[folderA]
path = /var/samba/folderA
valid users = @users_folderA
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderA
[folderB]
path = /var/samba/folderB
valid users = @users_folderB
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderB
[folderC]
path = /var/samba/folderC
valid users = @users_folderC
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderC
[folderD]
path = /var/samba/folderD
valid users = @users_folderD
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderD
Obviamente, cada usuario está en el grupo todos, para que puedan montar el recurso compartido con los subdirectorios. El acceso para cada subdirectorio funciona perfectamente bien. Pero cada vez que Ben crea un archivo en la carpeta C, el archivo obtiene los permisos de archivo -rwxr - r-- pero debería ser -rwxrwx ---
Creo que los recursos compartidos para las carpetas individuales no funcionan en absoluto porque intenté configurar writeable = no y read only = yes para probarlo. Reinició smbd y nmbd y volvió a montar el recurso compartido de red (en Windows 10). Los usuarios pudieron crear archivos y modificar los suyos.
Esto se ejecuta en una frambuesa pi con raspbian. El disco duro con los archivos está formateado como ext4 y montado a través de fstab.
force create mode = 770
declaración en lafolderC
sección de su configuración.