У меня есть общий ресурс Samba, содержащий много таких папок:
share
- folderA
- folderB
- folderC
- folderD
Есть около 20 пользователей, которые получают доступ к этим ресурсам. Каждый пользователь может иметь индивидуальный доступ к некоторым каталогам, например, Бен может обращаться к папке A и папке C, но не к папке B и папке D. Дженни может получить доступ к папке B и папке C и так далее.
Я не хочу, чтобы пользователи монтировали каждую нужную им папку. Я хочу, чтобы они смонтировали папку "share", которая содержит все подпапки. Затем доступ ограничивается установкой разрешений linux.
Я создал группу для каждого подкаталога и добавил пользователей в эти группы. Контроль доступа отлично работает для существующих файлов. Но всякий раз, когда пользователь создает файл в подкаталоге, он запрещается для любого другого пользователя, имеющего разрешение на чтение / запись в этом каталоге. Чтобы решить эту проблему, я поиграл с маскировкой самбы, но не смог заставить ее работать.
Мой Samba Conf выглядит так:
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
Таким образом, очевидно, что каждый пользователь в группе каждый, поэтому они могут смонтировать общий ресурс с подкаталогами. Доступ к каждому подкаталогу работает отлично. Но всякий раз, когда Бен создает файл в папке C, файл получает права доступа к файлу -rwxr - r--, но это должно быть -rwxrwx ---
Я думаю, что общие папки для отдельных папок вообще не работают, потому что я попытался установить writeable = no и read only = yes, чтобы проверить это. Перезапустил smbd и nmbd и перемонтировал сетевой ресурс (в Windows 10). Пользователи могли создавать файлы и изменять свои собственные.
Это работает на малиновом пи с малиновым. Жесткий диск с файлами отформатирован как ext4 и смонтирован через fstab.