Есть ли способ скрыть все подпапки в шаблоне соответствия общих ресурсов для одного (или всех, кроме одного) пользователя?
Я хотел бы иметь подкаталог (назовем его _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
который по существу скрывает файлы и каталоги, которые пользователю не разрешено читать. Вы можете установить это для каждой акции.