指向 .tmp.drivedownload 的符号链接会破坏 Google Drive 桌面客户端

指向 .tmp.drivedownload 的符号链接会破坏 Google Drive 桌面客户端

介绍

Google Drive for Desktop Windows 客户端(以前称为 Google Backup & Sync)使用两个临时隐藏文件夹(设置在本地 Google Drive 文件夹根目录中)来同步在线和本地的文件和文件夹。它们是:

.tmp.drivedownload
.tmp.driveupload

当 Google Drive for Desktop 同步文件和文件夹时,这些文件和文件夹会暂时存储到上述文件夹中。

例如,让我们关注文件从浏览器上传到 Google Drive 时发生的过程:

  • 使用浏览器将文件 notes.txt 上传到 Google Drive 的文件夹中My Drive > Mike
  • 上传完成后,客户端计算机上运行的 Google Drive for Desktop(或备份和同步)将检测到更改并下载上述文件
  • 该文件notes.txt被下载到.tmp.drivedownload本地计算机,然后,假设c:\drive是 Google Drive 根文件夹,它将被移动到该文件夹​​中c:\drive\Mike

所有这些都是完全合理的,但是,一旦运行 Google Drive for Desktop 客户端的本地计算机是 Windows Server,就会出现问题。

在这种情况下,多个用户需要以安全的方式访问文件,因为系统必须确保完全尊重文件权限。在以下方案中,每个用户应该只连接到自己的文件夹。 在此处输入图片描述

假设在云端,Google Drive 帐户“[电子邮件保护]”帐户与用户 Mike、Sue、Bob 共享一些文件夹。每个用户只能访问自己的文件夹。

在运行 Google Drive for Desktop 客户端的本地 Windows Server 上,文件夹结构复制了在线版本,并相应地设置了 NTFS ACL

在上面的场景中,看看当用户 Mike 使用浏览器将文件上传到 Google Drive 时会发生什么:

  • 该文件otherNotes.txt已上传至 Google Drive 文件夹My Drive > Mike
  • 上传完成后,在客户端计算机(即 Windows Server 计算机)上运行的 Google Drive for Desktop 客户端(或备份和同步)将检测到更改并下载上述文件
  • 文件otherNotes.txt下载到本地计算机的文件夹中.tmp.drivedownload,该文件夹的 ACL 由安装了 Google Drive for Desktop 客户端的本地用户继承(通常是 SYSTEM 和管理员帐户),因此下载的文件将继承这些权限。
  • 此时,上述文件被移动到文件夹c:\drive\mike,(最初设置为授予用户 Mike 独占访问权限),但是,由于文件正在同一分区之间移动,它将保留上一步中继承的 ACL,从而阻止用户 Mike 访问此文件(请参阅本文,以更好地了解在同一分区或跨多个分区移动文件时 ACL 的影响

以前有效的解决方法(现在已失效!!)

如上文所述,当文件或文件夹跨卷/分区移动时,它将继承目标文件夹的 ACL,因此,在 Google Drive for Desktop 客户端出现之前,解决此问题的技巧是:

  • 删除.tmp.drivedownload文件夹;
  • 创建指向另一个卷上的文件夹的符号链接.tmp.drivedownload 。例如: mklink /d C:\drive\.tmp.drivedownload \\QNAP-TS231P\tmpDrive

这样做之后,Google Drive 中的互联网文件就会下载到.tmp.drivedownload并移动到相应的本地文件夹,但是,由于该.tmp.drivedownload文件夹位于不同的分区/卷上,因此文件会按预期正确继承目标文件夹中设置的 ACL。

不幸的是,自从引入 Google Drive for Desktop 客户端(它取代了好用的备份和同步)以来,这一切都被打破了,它不允许上述技巧,因为一旦.tmp.drivedownload创建了符号链接,Google Drive for Desktop 客户端在尝试将文件或文件夹从云端同步到本地计算机时就会抛出错误 在此处输入图片描述

进一步调查 Google Drive 桌面日志将会显示错误,例如:

<<some data here>> failed with Status::GENERIC_ERROR

你会尝试什么?

答案1

面临类似的情况,不幸的是,谷歌似乎正在阻止符号链接,并锁定询问此问题的线程。

我可以继续列举,但你明白我的意思,谷歌认为这是一个漏洞,因此正在阻止它。

相关内容