我无法获得有关该/x
开关的更多信息:
此选项复制文件审核设置和系统访问控制列表 (SACL) 信息。使用 /x 选项时,暗示使用 /o。
我正在尝试编写一个脚本,将几个目录和个人文件简单地备份到连接到我的电脑的硬盘上。在示例脚本中,我经常看到/x
正在使用的开关,为什么我应该关心 SACL 信息?- 我使用的是 Windows 10。
有人可以给我指出一个很好的解释吗?或者有人自己可以给出一个很好的解释吗?
答案1
我为什么要关心 SACL 信息?
通常/x
使用该选项是因为您想要保留源文件和目标文件之间的安全设置。
笔记:
/x
:复制文件审核设置和系统访问控制列表 (SACL) 信息(隐含 /o)。/o
:复制文件所有权和自主访问控制列表 (DACL) 信息。
因此,如果您指定,/x
您将保留文件审计设置、SACL、文件所有权和 DACL。
由于您想要进行复制以进行备份,并且可能希望稍后恢复,因此您需要保留所有这些设置。
如果不这样做,则可能会发生以下情况:
使用 Windows 资源管理器复制或移动文件和文件夹时,文件或文件夹上设置的权限可能会发生变化。例如,在 NTFS 文件系统卷中或两个 NTFS 卷之间复制文件时,Windows 会将其视为新文件。作为新文件,它将获得目标文件夹的权限,而您将成为创建者所有者。
...
当您使用带有 /O /X /E /H /K 开关的 Xcopy 命令复制文件时,将应用以下继承权限:
- 直接分配给文件和文件夹的安全设置将被保留。
- 从源父文件夹继承的安全设置将丢失。
- 目标文件夹的安全设置将被继承。
- 当您将文件或文件夹移动到 FAT 卷时,文件夹和文件将失去其 NTFS 权限,因为 FAT 卷不支持 NTFS 权限。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 复制- 将文件和/或目录树复制到另一个文件夹。
答案2
系统访问控制列表不是包含文件访问权限!这些权限存储在“自由访问控制列表”中,这是您在查看文件“属性”窗口的“安全”选项卡时看到的内容。使用时会复制 DACL /o
。/x
复制 DACL 和 SACL。
那么 SACL 中有什么?SACL 仅说明应审核哪些类型的文件访问。如果您不知道是否正在审核文件访问,则几乎肯定没有审核,因此复制(空白)SACL 毫无意义。如果您确实需要保留该信息,则应提供/x
。