在Linux上挂载webdav并使用cookie认证

在Linux上挂载webdav并使用cookie认证

我正在尝试从 Linux 控制台访问我的“Onedrive for Business”存储,特别是无头 Ubuntu 16.04 服务器。唯一的正式支持的方法是 Windows 同步应用程序。

我想使用 Onedrive 作为远程文件系统延长我的本地存储,而不是使用同步客户端在本地复制所有文件。

“Onedrive for Business”实际上是 Sharepoint 的一个变体,它不接受 webdavs 上的用户名和密码 - 必须已经存在一个用于 webdavs 客户端的身份验证 cookie。

通过调整以下说明,我已成功将远程存储安装为 Windows 10 中的 webdavs 文件夹:https://www.imss.caltech.edu/content/mounting-onedrive-business-mapped-drive但它仅在使用 Internet Explorer 登录我们的 Onedrive 网站并创建 Windows Explorer 使用的 cookie 后才有效。

在 Linux 上,我可以通过在 Konqueror Web 浏览器中登录 Onedrive 网站,然后使用该 cookie 连接到 Konqueror 文件浏览器中的 webdavs 来复制此行为。这总比没有好,但我确实需要控制台访问权限。不幸的是,KioFuse 似乎早已被废弃。

除了 Konqueror 之外,还有什么方法可以让 Linux 控制台访问远程文件系统?我查看了 davfs2、gvfs 和 cadaver,但找不到任何使用现有 cookie 进行身份验证的文档。

答案1

您可以使用 davfs2 和add_header配置选项来发送曲奇饼HTTP 标头。将这两行添加到/etc/davfs2/davfs2.conf

[/mount/path]
add_header Cookie rtFa=<...>;FedAuth=<...>

其中/mount/path是您的挂载路径,rtFaFedAuth是您连接到 OneDrive 时浏览器发送的 HTTP 请求中可以找到的 Cookie。

确保 的第二个参数中没有空格add_header

然后您可以从命令行安装驱动器:

/sbin/mount.davfs https://<name>.sharepoint.com/<...> /mount/path

相关内容