С FUSE можно монтировать многие вещи исключительно как непривилегированный пользователь. Однако, похоже, что для webdav предпочтительным проектом является davfs2, который выглядит как драйвер файловой системы и использует стандартный mount / umount, требующий привилегий.
Есть ли способ использовать эту (или другую библиотеку) для монтирования webdav только как пользователь через fuse? (т.е. чтобы каждый пользователь мог монтировать другой webdav на другом сервере, без необходимости настраивать что-либо в fstab и т. д.).
Я смог использовать wdfs, чтобы он работал как обычный пользователь. пользователь:
wdfs <dav url> <mount point>
Размонтировать
fusermount -u <mount point>
wdfs из Вот и использует предохранитель. Я использую Archlinux и этот Пакет AUR работал нормально.
Но текущее состояние wdf-файлов неясно, в gihub также.
В качестве ответа для начала ... Я бы предложил следующее.
1) sshfs не требует доступа к файлу / etc / fstab, поэтому, если вы можете сопоставить своих пользователей webdav с пользователями Linux с аналогичной структурой файлов, то это простая альтернатива.
Затем вы можете использовать такой синтаксис без полномочий root для монтирования в вашем локальном домашнем каталоге;
sshfs -o ControlPath=none -o workaround=rename -o idmap=user \
-o nonempty -o reconnect -o transform_symlinks -o follow_symlinks" \
userXXX@my.ssh.server.com:/ $HOME/mnt/my.ssh.server.com
2) gvfs / gio - в зависимости от вашего дистрибутива, /usr/libexec/gvfsd-dav
может быть вариантом, который должен позволить альтернативному синтаксису управления для монтирования файловой системы webdav под ~/.gvfs/
Однако документация довольно вздорна, и я провел лишь ограниченный тест ее функциональности.
Как root;
sudo yum install gvfs-fuse.x86_64
затем как пользователь;
$ gvfs-mount dav://my.dav.server.hostname.com/projects/
Enter password for Authorization Realm
User: my.dav.username
Password: XXXXXX
$ cd ~/.gvfs/WebDAV\ on\ my.dav.server.hostname.com/
$ ls
proj1
proj2
proj3
...
etc
Если у вас есть sudo
права, но хотите смонтировать этот каталог как обычный пользователь, вы можете использовать davfs
и mount
. Просто добавляю это для завершения, если кто-то ищет этот ответ, как я.
sudo apt-get install davfs2
mkdir myDir
sudo mount -t davfs -o uid=myUser -o gid=myUser https://example.org/remote.php/webdav/ /home/myUser/myDir/