Рейтинг:1

Как наложить вето на конкретный путь UNIX с помощью Samba? (Соответствует одному каталогу с определенным именем, но НЕ любым другим)

флаг pe

Итак, недавно я узнал о наложить вето на файлы вариант для Samba, и я хочу использовать его, чтобы скрыть только один каталог, который соответствует заданному имени.

Пример: у меня есть два каталога со следующими путями UNIX:

  • /хранилище/данные/nextcloud
  • /хранилище/пользователи/trwnh/nextcloud

Я хочу наложить вето на первое, но нет второй.

Варианты, которые я пробовал:

  • вето файлы = /storage/data/nextcloud (не сработало, поэтому я внимательно прочитал справочную страницу и обнаружил, что / является разделителем ИЛИ, а не разделителем пути)
  • вето файлы = /storagedatanextcloud (мое первое предположение состояло в том, что я должен просто удалить разделители пути - должно быть, это немного поздно, IDK, почему я думал, что это сработает)
  • наложить вето на файлы = /nextcloud/ (работает, но скрывает оба каталога, а не только первый)

На данный момент я застрял, и я даже не уверен, реализована ли нужная мне функциональность в Samba, поэтому я обращаюсь к Интернету, чтобы помочь мне понять это.

Рейтинг:0
флаг us

smb.conf(5) подразумевает, что вы не можете запретить определенные пути, только имена файлов (и каталогов), пусть они будут где угодно.

       файлы вето (S)

       Это список файлов и каталогов, которые не видны и не доступны. Каждая запись в
       список должен быть разделен символом ´/´, что позволяет включать пробелы в запись. ´*´ и ´?´ может
       использоваться для указания нескольких файлов или каталогов, как в подстановочных знаках DOS.

       Каждая запись должна быть путем unix, а не путем DOS, и не должна включать разделитель каталогов unix.

Так что это не то, что вы ищете, учитывая, что вы не можете изменить ни Nextcloud имя каталога.

Есть несколько вариантов:

я предполагаю, что вы получаете доступ к samba с тем же пользователем, что и ваш системный пользователь, поэтому вы не можете отозвать биты r/x только у пользователя samba, не затрагивая разрешения вашего пользователя linux.

  1. запускайте samba в отдельном пространстве имен монтирования, в котором вы монтируете каталог, который хотите скрыть. видеть удалить(1) и монтировать --bind, возможно, потребуется немного настроить сценарии инициализации samba.

  2. bind-mount весь /storage в другое место, например. /smb/storage и перемонтировать /smb/storage/users/trwnh/nextcloud. и укажите общий ресурс samba в /smb/storage. таким образом, вам не нужно отдельное пространство имен монтирования.

  3. поместите /storage/data и /storage/users в отдельные общие папки.

  4. создайте модуль samba vfs, единственной задачей которого является скрытие нежелательного каталога.

trwnh avatar
флаг pe
Я думаю, что мне, возможно, придется пойти с (3) и просто жить с общим ресурсом [storage], не отображающим пользовательские папки nextcloud, поскольку общий ресурс [storage_users_trwnh] покажет это, верно? Единственным недостатком является то, что мне приходится монтировать два общих ресурса на каждом клиенте вместо одного. И я также полагаю, что я не могу назвать какой-либо каталог или файл «nextcloud» без того, чтобы он так же не исчез.

Ответить или комментировать

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