smb.conf(5) подразумевает, что вы не можете запретить определенные пути, только имена файлов (и каталогов), пусть они будут где угодно.
файлы вето (S)
Это список файлов и каталогов, которые не видны и не доступны. Каждая запись в
список должен быть разделен символом ´/´, что позволяет включать пробелы в запись. ´*´ и ´?´ может
использоваться для указания нескольких файлов или каталогов, как в подстановочных знаках DOS.
Каждая запись должна быть путем unix, а не путем DOS, и не должна включать разделитель каталогов unix.
Так что это не то, что вы ищете, учитывая, что вы не можете изменить ни Nextcloud
имя каталога.
Есть несколько вариантов:
я предполагаю, что вы получаете доступ к samba с тем же пользователем, что и ваш системный пользователь, поэтому вы не можете отозвать биты r/x только у пользователя samba, не затрагивая разрешения вашего пользователя linux.
запускайте samba в отдельном пространстве имен монтирования, в котором вы монтируете каталог, который хотите скрыть. видеть удалить(1)
и монтировать --bind
, возможно, потребуется немного настроить сценарии инициализации samba.
bind-mount весь /storage в другое место, например. /smb/storage и перемонтировать /smb/storage/users/trwnh/nextcloud. и укажите общий ресурс samba в /smb/storage. таким образом, вам не нужно отдельное пространство имен монтирования.
поместите /storage/data и /storage/users в отдельные общие папки.
создайте модуль samba vfs, единственной задачей которого является скрытие нежелательного каталога.