1

У меня есть облачная учетная запись, которая монтируется с помощью fuse-lib в Ubuntu 16.04.

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

Я знаю, что именно так должен работать fuse-lib, и вы можете передать опцию -o allow_other чтобы обойти это, но я не могу вручную смонтировать диск.

Монтирование происходит через программное обеспечение.

Если не считать охоты и перекомпиляции программного обеспечения (не идеально), я хотел бы найти способ управления монтированием после его монтирования.

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

Любые соответствующие советы приветствуются.

1 ответ1

1

Временное решение

Установите bindfs. Затем вызовите в качестве исходного пользователя:

bindfs -o allow_other /original/mountpoint /secondary/mountpoint

Содержимое /original/mountpoint должно отображаться в /secondary/mountpoint и другие пользователи должны иметь возможность использовать последний путь. Каждая попытка доступа к /secondary/mountpoint (независимо от того, от какого пользователя) будет обрабатываться процессом пользовательского пространства, работающим с привилегиями исходного пользователя, поэтому больше нет необходимости изменять исходное монтирование.

Очевидным недостатком является то, что теперь есть две последовательные файловые системы FUSE вместо одной. Это может повлиять на производительность.

Вы должны прочитать эти вопросы безопасности, особенно:

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

Если вам удалось включить -o allow_other для /original/mountpoint , как вы и хотели, вы столкнулись бы с теми же проблемами. Мне кажется, что мой обходной путь не делает их хуже; теперь они применяются к /secondary/mountpoint вместо /original/mountpoint , но они одинаковы.

Возможно, программное обеспечение не сможет размонтировать из /original/mount пока вы не скажете bindfs размонтировать из / primary /secondary/mountpoint . Для этого запустите от имени исходного пользователя:

fusermount -u /secondary/mountpoint

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .