Как вложить и предоставить общий доступ к нескольким пулам ZFS через Samba нескольким пользователям

Как вложить и предоставить общий доступ к нескольким пулам ZFS через Samba нескольким пользователям

У меня следующая структура ZFS:

% sudo zfs list                                                            16:03:46
NAME                          USED  AVAIL     REFER  MOUNTPOINT
zpool1                       1.18T  5.86T      544K  legacy
zpool1/home                  1.18T  5.86T       96K  legacy
zpool1/home/alice            12.6G  5.86T     12.6G  /zshare/zpool1/home/alice
zpool1/home/bob              1.17T  5.86T     1.02T  /zshare/zpool1/home/bob
zpool2                       2.22T  4.82T      188K  legacy
zpool2/media                 1.13T  4.82T     1.13T  /zshare/zpool1/home/media_root

Из соображений производительности и хранения, zpool1& zpool2не делите никакие диски. Я хочу, чтобы и Боб, и Элис имели доступ media_root. Однако Бобу и Элис не разрешено получать доступ к файлам друг друга.

  1. Я не могу предоставить общий доступ к папке /zshare/zpool1/home, поскольку она принадлежит корневому разделу, который небольшой, и если бы Алиса или Боб захотели скопировать в свою папку что-либо больше 60 ГБ, то они бы выдали сообщение «недостаточно места», даже если бы оно было в их домашней папке (Windows вычисляет пространство на диске, на котором размещена общая папка SMB).
  2. Я не могу предоставить общий доступ к двум папкам на рабочих станциях обоих пользователей, поскольку Windows не позволяет монтировать несколько сетевых дисков с одного IP-адреса...
  3. Я не могу создать символическую ссылку media_rootна /aliceи , /bobпотому что в Windows она не будет следовать по символической ссылке, и я не могу заставить работать жесткие ссылки в файловых системах Z.

Я ОЧЕНЬ НЕ ХОЧУ дублировать все файлы в media_rootподпапке для Алисы и Боба и использовать rsync в стиле crontab, чтобы они оба обновлялись друг у друга и на zpool2, но какие еще есть варианты?

Я уверен, что есть способ сделать это с ZFS в Ubuntu 20.04, но КАК?

EDIT: В рассматриваемой сети НЕТ DNS.

решение1

Я не могу предоставить общий доступ к двум папкам на рабочих станциях обоих пользователей, поскольку Windows не позволяет монтировать несколько сетевых дисков с одного IP-адреса...

Это не так. Вы можете монтировать столько сетевых дисков (отина ту же машину), поскольку у вас есть свободные буквы. Вы даже можете использовать простые пути UNC или монтировать даже глубокие имена путей (например net use t: \\server\share\bobs\eyes\only) Просто создайте нужные вам общие ресурсы и используйте их соответствующим образом.

Однако Бобу и Элис не разрешен доступ к файлам друг друга.

Это вопрос прав доступа к файлам/папкам.

решение2

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

Например, вы можете создать группу с именем "media_access" и добавить в нее и Алису, и Боба. Затем вы можете установить разрешения на папку media_root так, чтобы только члены группы media_access могли получить к ней доступ. Для этого выполните следующую команду:

chgrp media_access /zshare/zpool1/home/media_root
chmod g+rwx /zshare/zpool1/home/media_root

Это изменит владельца папки media_root на группу media_access и предоставит членам этой группы разрешения на чтение, запись и выполнение в этой папке.

После настройки разрешений вы сможете получить доступ к общей папке с рабочих станций Алисы и Боба. Однако они смогут получить доступ только к файлам, которые находятся в общей папке, и не смогут получить доступ к файлам друг друга в своих домашних каталогах.

решение3

В конце концов мне пришлось включить и разместить DNS для сети, чтобы все заработало.

Пример:
подключение двух сетевых дисков в Windows, как показано ниже

\\192.168.11.1\share001
\\192.168.11.1\share002

не удается, однако при использовании DNS

\\alice\share001
\\bob\share002

^ то, что выше, работает, даже если оба alice& bobразрешаются в 192.168.11.1.

Связанный контент