以用户身份安装 webdav(无需 sudo)

以用户身份安装 webdav(无需 sudo)

使用 FUSE,可以以非特权用户身份挂载许多东西。但是,对于 webdav 来说,davfs2 似乎是首选项目,它似乎是一个文件系统驱动程序,并使用需要特权的标准挂载/卸载。

有没有办法使用这个(或另一个库)通过 fuse 仅作为用户挂载 webdav?(即每个用户可以在不同的服务器上挂载不同的 webdav,而不需要在 fstab 等中配置任何内容)。

答案1

我能够使用 wdfs 使其作为非特权用户工作:

 wdfs <dav url> <mount point>

卸载

fusermount -u <mount point>

wdfs 来自这里并使用 fuse。我使用 Archlinux 和AUR 包运行良好。

但目前 wdfs 的状态尚不明确,有一种分叉潜伏在吉哈布也一样。

答案2

如果您有sudo权限但想以普通用户身份挂载此目录,则可以使用davfsmount。如果有人像我一样搜索这个答案,只需添加此项即可完成。

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

相关内容