使用 FUSE,可以以非特权用户身份挂载许多东西。但是,对于 webdav 来说,davfs2 似乎是首选项目,它似乎是一个文件系统驱动程序,并使用需要特权的标准挂载/卸载。
有没有办法使用这个(或另一个库)通过 fuse 仅作为用户挂载 webdav?(即每个用户可以在不同的服务器上挂载不同的 webdav,而不需要在 fstab 等中配置任何内容)。
答案1
答案2
如果您有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/
答案3
作为开始的答案,我建议如下。
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" \
[email protected]:/ $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