Назад | Перейти на главную страницу

Samba: скрытие подпапок для определенных пользователей

Есть ли способ скрыть все подпапки в шаблоне соответствия общих ресурсов для одного (или всех, кроме одного) пользователя?

Я хотел бы иметь подкаталог (назовем его _private_data), который должен быть виден user1 но не user2. Но я не могу заранее знать, где будет этот каталог. Может быть что user1 создает каталог ShareThis/LookHere а затем создает каталог ShareThis/LookHere/_private_data. 'user2' Также имеет разрешение на чтение ShareThis/LookHere и все подкаталоги, но он не должен видеть _private_data подкаталог.

Это как-то возможно? Я уже нашел hide files, veto files и dont descend параметры. Которые выглядят очень похоже на то, что я хочу, но я понятия не имею, как назначить их только некоторым пользователям и как заставить их совпадать в любом подкаталоге общего ресурса.

Наконец я нашел решение. Он работает путем включения файла на основе имени пользователя. Вам нужно создать (или символическую ссылку) файл для каждого пользователя, которому вы хотите разрешить просмотр каталога _priv, но для меня это нормально.

Ниже приведен пример общего ресурса под названием «Изображения».

smb.conf:

[Images]
comment = Shared Images
path = /path/to/images
write list = user1, user2
valid users = user1, user2

# make sure the _priv directory cannot be accessed
hide files = /_priv/
veto files = /_priv/

# The following line allows to revert hide and veto options so that
# specific users are allowed to view private directories
include = /etc/samba/allowprivate.conf.%U

а затем для каждого пользователя, который должен иметь доступ к каталогам, создайте файл allowprivate.conf. (например, allowprivate.conf.user1) со следующим содержимым:

# This reverts the settings from smb.conf, so that this user
# can access all files
hide files =  
veto files =

Он работает даже с подкаталогами, поэтому «привилегированные» пользователи могут просто создать _priv каталог, и непривилегированные пользователи не смогут получить доступ к этому каталогу.

Я предполагаю, что поскольку каталог должен быть скрыт, он также не должен быть доступен для чтения другим пользователям. Вы можете изучить параметр hide unreadable который по существу скрывает файлы и каталоги, которые пользователю не разрешено читать. Вы можете установить это для каждой акции.