Модификация предохранителя при монтировании

259
Derple

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

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

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

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

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

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

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

1

1 ответ на вопрос

1
Kamil Maciorowski

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

Установить 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отключить от /secondary/mountpoint. Для этого запустите от имени исходного пользователя:

fusermount -u /secondary/mountpoint