Cygwin 在安全权限方面的奇怪行为

Cygwin 在安全权限方面的奇怪行为

我正在使用 Cygwin 运行定期备份,例如:

cp -a "$(cygpath C:\Users\S\Documents)" "$BU_FOLDER"

但是我注意到创建文件夹或文件的命令(例如cp或)mkdir,在属性->安全选项卡(在Windows资源管理器上)上创建特殊权限,以便在Windows上创建与POSIX兼容的环境,我相信。

这会导致问题。如果您按照这些步骤操作,您将无法访问复制目标中的文件。

  • 如果我运行上面的命令来复制 Documents 文件夹
  • 然后决定删除目标中的文件夹($BU_FOLDER/Documents/myfolder)

然后 Windows 挂起一小会儿,删除了该文件夹但锁定了我无法查看该文件夹:

在此处输入图片描述

cp当您使用或 时,这些权限将被添加到安全选项卡中mkdir

在此处输入图片描述

我找不到从所有文件夹中递归删除这些权限的方法。

我应该停止使用 Cygwin 吗?这些权限在 Cygwin 中工作正常,我可以修改目标中的文件夹和文件,但是当我在 Windows 资源管理器上执行这些操作时,会发生这些奇怪的意外行为,这让我作为最终用户感到困惑。

答案1

复制 Windows 文件的最佳和最快捷的方法是使用Robocopy

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

另请参阅/COPYALL复制选项NTFS access control list (ACL)

Cygwin 使用一些技巧来模拟 Unix 权限
http://www.cygwin.com/cygwin-ug-net/highlights.html#ov-hi-perm
并且使用 Cygwincp或者rsync复制所有 Windows 权限非常麻烦。

我会坚持使用Robocopy需要 Windows ACL 权限的 Windows 文件和需要 Cygwin/Unix 权限的文件的 Cygwin 工具。

答案2

我找到了一个解决方案来解决这个问题。毫无意义的权限将不再显示在“安全”选项卡上,也不会显示警告。解决方案是您必须使用 Windows 资源管理器或 Cygwin 以外的任何程序将文件或目录移动到另一个驱动器,您可以检查 Linux 权限是否不再位于“安全”选项卡上,现在您可以将其移回,或移到计算机上任何驱动器中的任何位置。我不知道这是怎么回事。在 Windows 11 23H2、22631.3447 上测试。

相关内容