8

У меня есть общий ресурс 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.

1 ответ1

5

Попробуйте этот конфиг (для разделов общего доступа):

[Share]
path        = /var/samba
valid users = @everybody
force group = +everybody
writeable   = yes
create mask = 0660
force create mode = 0110
directory mask = 0770

[folderA]
path        = /var/samba/folderA
valid users = @users_folderA
force group = +users_folderA
browseable = no

[folderB]
path        = /var/samba/folderB
valid users = @users_folderB
force group = +users_folderB
browseable = no

[folderC]
path        = /var/samba/folderC
valid users = @users_folderC
force group = +users_folderC
browseable = no

[folderD]
path        = /var/samba/folderD
valid users = @users_folderD
force group = +users_folderD
browseable = no

Не забудьте проверить настройки и перезапустить samba:

# testparm
# service smbd restart
# service nmbd restart

Установить разрешения:

chown root:everybody /var/samba
chmod 770 /var/samba
chown root:users_folderA /var/samba/folderA
chmod 2770 /var/samba/folderA
chown root:users_folderB /var/samba/folderB
chmod 2770 /var/samba/folderB
chown root:users_folderC /var/samba/folderC
chmod 2770 /var/samba/folderC
chown root:users_folderD /var/samba/folderD
chmod 2770 /var/samba/folderD

Таким образом, прямой доступ к внутренним папкам не разрешен. Более того, они вообще не видны и доступны только через родительскую папку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .