Windows 在哪里存储 ACL,ACL 是否跟随文件从一台计算机传输到另一台计算机?

2024-01-06

我们的应用程序使用的组件需要在可执行文件的目录中包含许可证文件,该文件恰好是 .NET WinForms 应用程序,尽管我认为这对这个问题并不重要。当安装在某些 XP Pro 计算机上时(迄今为止仅数百台计算机中的三台),该组件会引发许可证异常。因此,我重新生成了许可证文件并将其发送给组件供应商(EMC Captiva),供应商声称错误是由于“Users”组对该文件没有读取权限造成的。遇到错误的用户恰好是本地管理员,但这不是重点,因为我仍然对更普遍的问题感到好奇。

所以我的问题是,ACL 是否存储在文件中,以便它们在文件的整个生命周期中都遵循该文件,尤其是当许可证文件在我的开发计算机(计算机 1)上生成、存储在 Subversion(计算机 2)中、从源代码管理中签出时由TeamCity(机器3)打包,由InstallShield(机器4)打包成安装程序,最后部署到客户的机器(机器5),由管理员安装?当我在我的开发机器(机器 1)上生成文件,通过组件供应商的支持站点(机器 2)将其上传到组件供应商,然后支持人员将其下载到他们的机器(机器 3)进行检查时,会怎么样?

我不确定这一点(这就是我在这里询问的原因),但我假设每台 Windows 计算机都将 ACL 存储在由 NTFS 管理的某个中央目录/列表/表中,而不是存储在文件中。当原始文件的 ACL 从一台机器复制到另一台机器、存储在 Subversion 中、打包成 MSI 等时,会发生什么情况?有人可以给我指出一些好的参考资料,让我可以阅读这方面的内容吗?


ACL 存储在 NTFS 分区中负责所有后台管理的部分 - MFT(主文件表)。

ACL 不跟随文件,因为它不是文件的一部分(就像文件名一样,它是元数据)。文件可以跨越分区类型边界(NTFS->FAT),但 ACL 不能。

现在如果你move对于一个 NTFS 分区中的文件,您可能会觉得 ACL 实际上跟随该文件。这是因为在移动过程中,实际上仅更改了 MFT 中的文件名。其他一切都保持不变。

如果您复制文件或将其移动到另一个分区或计算机(这实际上是复制+删除操作),复制的文件将默认继承其新容器的权限(准确地说,仅是可继承的权限)。

但是,有些工具能够在复制操作后保留文件的 ACL(只需在复制操作后在目标文件上重新创建它),甚至可以跨分区或计算机边界。 xcopy 可以做到这一点,等等。

但由于 ACL 可以包含“域拥有”的 SID,因此 ACL 条目实际上对于不属于同一域的目标计算机可能没有意义(例如,当将 NTFS 格式的 USB 驱动器带回家时)。在这种情况下,ACL 条目将不起作用。

其他 SID 是“众所周知的”,例如“SYSTEM”SID。这些实际上将跨域边界被识别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 在哪里存储 ACL,ACL 是否跟随文件从一台计算机传输到另一台计算机? 的相关文章

  • 如何以编程方式更改 Win 8.1 或 Win 10 UWP 应用程序的背景主题?

    我有一个适用于 Windows Phone 8 1 的应用程序及其 UWP 版本 我想在 Windows 中更改应用程序的背景时动态更改它 用例是 启动应用程序 背景主题为深色 按手机上的主页按钮 将背景主题更改为浅色 返回应用程序 基本上
  • 在 Windows 中以编程方式重新启动 USB 设备

    我正在开发的一些软件需要 USB 设备 我作为串行端口与 USB 转 UART 桥进行交互 有时 计算机从休眠状态重新启动后 无法检测到该设备 并且我无法再通过串行端口写入或读取该设备 需要对设备进行读 写访问 我不能依赖用户采取任何操作
  • 隐藏 AppBar 中的省略号

    当您在 UWP 应用中创建 AppBar 或 CommandBar 时 控件侧面附近总会隐藏一个省略号 如下所示 我不想在我的应用程序中使用它 但我没有在其中找到任何方法 属性AppBar这会帮助我摆脱它 这应该是可能的 因为许多默认的 W
  • $ 之间的区别?和 PowerShell 中的 $LastExitCode

    在 PowerShell 中 有什么区别 and LastExitCode I read 关于自动变量 http technet microsoft com en us library dd347675 aspx 它说 Contains t
  • c# 简单 WMI 查询中的“无效类”

    我想在此查询后找到一些结果 但在 foreach 循环开始时 出现错误 无效类 string wmiQuery string Format SELECT FROM Win32 Process var searcher new Managem
  • 在 C# 中查看非托管 dll 上的导出表

    我目前正在尝试创建一个 C 应用程序 该应用程序将允许我查看非托管 DLL 中的导出表 我的问题是 一旦我获得了所需的所有指针 我不知道如何循环访问 API 为我提供的信息 这是我现在所拥有的 using System using Syst
  • 要在按下时创建一个按钮,请在 python 3.3 的输入框中打印该按钮上的编号

    我想制作一个写有 2 的按钮 现在当有人单击它时 它会在输入框中显示数字 2 错误是 点击之前 输入框中已经显示 2 所以请帮我消除这个错误 这是我的程序 from tkinter import root Tk def add x e1 E
  • 是否有用于 Shell 扩展的单击处理程序

    经过之后MSDN 外壳扩展 http msdn microsoft com en us library ff468984 v VS 85 aspx我不太确定是否可以扩展 Shell Click 或资源管理器的 Click Event 的行为
  • 阻止Winform最大化?

    我想防止我的桌面应用程序最大化 它不应该以任何方式最大化 通过双击标题栏 或通过单击键盘上的 Windows 向上箭头等 gt 我禁用了这两个最大化框 and 最小化框 gt 我还设置了最大尺寸 and 最小尺寸对于我的 WinForm仍然
  • Windows 10:如何防止切换或关闭应用程序

    我正在为 Windows 10 设备开发一个应用程序 该设备将在公共场所暴露给用户 并且其硬件按钮将无法访问 如何防止用户使用触摸屏手势关闭我的应用程序 使用分配的访问权限设置您的应用程序 http www winbeta org news
  • FOSUserBundle 和 ACL 业务角色

    这个周末我开始学习 Symfony 2 我没有遇到任何问题 因为我认为该框架有详细记录 我正在使用 FOSUserBundle 包进行 ACL 我想知道是否可以使其类似于 Yii 框架 bizRule return Yii app gt u
  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • Golang - 更改 Windows 上的构建工作路径

    我正在使用 SublimeText3 GoSublime 插件 在 Windows 8 上测试简单的 Go 程序 go run v example go 在运行之前它正在内部编译 应用程序数据 本地 温度 目录 我的防病毒程序认为这是病毒并
  • 将.exe文件嵌入到C++程序中?

    我编写了一个 C 程序 我想在其中执行第二个程序 这是一个 exe 文件 问题是我想将我的程序作为一个文件共享给其他人 当我在互联网上搜索时 我找到了这个解决方案 只需将第二个 exe 文件作为二进制资源存储在主文件中 exe 在编译时使用
  • 在“打开方式...”上下文菜单中命名程序

    如何自定义程序中可见的名称打开用 Windows XP 和 7 中的上下文菜单 例如 我有 3 个版本的产品 名为XYZ安装在 Windows 上 x文件关联到xyz exe COM 注册 该产品的所有版本都具有相同的 exe姓名 现在在打
  • 在 Ubuntu 12.04 上的 Apache 上配置 SVN 服务器

    我正在尝试通过 HTTP 访问现有的 Subversion 服务器 我的dav svn conf文件看起来像
  • 将JAVA程序作为计划任务运行

    我试图在 Windows 7 机器上每天运行一次简单的 JAVA 程序 我的代码在 NetBeans 中运行良好 如果我进行清理并构建 它会表明 C Program Files Java jdk1 7 0 bin java jar C Us
  • 有没有办法使用 win API 获取 HRESULT 值的字符串表示形式?

    win API 中是否有函数可用于提取 HRESULT 值的字符串表示形式 问题是 MSDN 中并未记录所有返回值 例如执行默认应用程序域 http msdn microsoft com en us library ms164411 asp
  • 为什么tcl/tkinter只支持BMP字符?

    我正在尝试在基于 tkinter 和 tcl 构建的 gui 中查询和显示 utf 8 编码字符 但是 我发现 tkinter 无法显示 4 字节字符 即大于 U FFFF 的 unicode 代码点 为什么会这样呢 实现非 BMP 字符对
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate

随机推荐

  • 查找距给定 Lat Lng 位置一定距离内的所有纬度经度位置的算法

    给定具有纬度 经度位置的地点数据库 例如 40 8120390 73 4889650 我如何找到特定位置给定距离内的所有位置 从数据库中选择所有位置 然后一一遍历它们 获取距起始位置的距离 看看它们是否在指定距离内 这似乎不是很有效 有没有
  • EditText 只接受几个字符

    我需要实施一个EditText在 Android 上 它仅接受特定范围的字符 即 S A Q W R B C D E U 在你的程序中使用这两个属性怎么样 EditText android maxLength 1 android digit
  • 如何使用 Node.JS 防止 SQL 注入?

    如何使用 Node JS 选择 MS SQL Server 数据库的一行并防止 SQL 注入 我使用express框架和包mssql https www npmjs com package mssql 这是我现在使用的代码的一部分 可以使用
  • 保留期后的 Kafka 偏移量

    我有一个带有 1 个分区的 kafka 主题 如果其中有 100 条消息 则偏移量将从 0 99 开始 根据 kafka 保留策略 所有消息都将在指定期限后被清除 一旦所有消息都被清除 保留期过后 我将向该主题发送 100 条新消息 现在
  • 访问JS文件中的css变量

    我有一个CSS有一些变量定义的文件 red red color yello yellow color 我可以使用这个变量CSS文件 但我想知道如何在我的JS file 假设您使用的是原生 CSS 变量而不是某些预处理器 请查看这一页 htt
  • 经过一段时间后调度操作

    所以我第一次使用 React 和 Redux 在我的应用程序中 我使用第三方 API 来获取数据等 在这方面一切都很好 然而 像大多数受保护的 API 一样 我需要获取一个短暂的令牌来向 API 发出请求 我想在某种事件上设置一个计时器 以
  • 将 Asp.Net MVC 控制器转换为 Web API 的最佳方法

    我有这个ASP NET MVC 5我正在使用 MS Web Api 将其转换为 AngularJS 的项目 现在在旧项目中我有这些类型的 c 控制器Controller 但是在我的新项目中 我创建了一些新的 Web Api 控制器类型Api
  • R 内置 Web 服务器

    从 R 2 13 开始 R 附带了内置的 Web 服务器 有没有一种简单的方法可以使用 R 和自定义端口号创建本地 Web 服务器 在Python中它将是 使用 http 本地主机 8080 http localhost 8080 pyth
  • 如何使用swing类Java绘制网格并在单击和拖动时检测鼠标位置

    我正在尝试使用 Swing 类创建一个网格 UI 5 5 我尝试了嵌套循环并将 jPanel 动态添加到 jFrame 中 我还尝试在用户单击并放在每个 jPanel 上时更改其背景颜色 但在我的代码中 每个单元格之间存在巨大的间隙 我无法
  • 展平递归列表

    显然有很多关于这个主题的问题 但我看不到提出的任何通用解决方案 我有一个深度递归列表 并希望将其展平为包含所有非列表项的单个列表 例如 采用这个嵌套列表 d list list list iris sample 1 150 3 iris s
  • 输入重定向到 Java - 无法找到或加载主类

    我尝试了每个在线解决方案 但仍然得到相同的结果 我试图让我的代码在文件 distinct txt 上运行 这是我运行它的尝试 我尝试了不同的路径 但都给出了相同的结果 这是我的代码 package pset2 sol import edu
  • 将 Angular 4.x 迁移到 Angular 5 [重复]

    这个问题在这里已经有答案了 我已阅读以下博客和文档 角度博客 https blog angular io version 5 0 0 of angular now available 37e414935ced 鳄鱼 IO 文档 https
  • 如何在 Mac OSX clang 上获得对 thread_local 的支持?

    如图所示这个答案 https stackoverflow com a 23850891 115751 Mac OSX 上的 Xcode 中的 clang 不支持thread local即使设置了 C 11 标志也可以存储 即使在最新版本上
  • 为什么我的调试器有时会崩溃并做出与我的代码不一致之类的事情?

    当我在我的 C 代码上使用调试器时 在我的特定情况下 是 QT Creator 和 GDB 一起激发了这个灵感 有时甚至在调用之后make clean其次是make调试器似乎吓坏了 有时它似乎与另一段代码的行号对齐 并且会跳来跳去 有时这会
  • string::find 的 C++ 正则表达式等效项

    我正在尝试编辑一个开源 C 程序来进行简单的调整 以便输入之一接受正则表达式字符串而不是字符串 我是一个完全的 C 菜鸟 从未写过任何东西 所以我希望有人能给我指出一个可以工作的函数 采取以下代码 include
  • 每次请求时都会调用tornado.web.RequestHandler中的初始化/

    有一个initialize中的方法tornado web RequestHandler类 每次有请求时都会调用吗 是的 龙卷风在召唤initialize对于每个请求 如果您想在请求之间共享状态 例如数据库连接 将其存储在self appli
  • NHibernate 属性公式过滤器

    我有以下课程 MyClass public virtual int Id get set public virtual int Code get set public virtual int Description get set publ
  • 如何将文件下载到本地下载文件夹?

    我使用 WebView 启用了文件的下载设置 我正在使用 DownloadManager 保存文件 但这些文件不会出现在本地下载目录中 我下载的文件保存在这里 gt file storage emulated 0 Android data
  • 带有 NULL 的指针算术

    有人可以解释一下为什么 int main void char a NULL int b NULL double c NULL printf n d d d n d d d n n int a 1 int b 1 int c 1 int a
  • Windows 在哪里存储 ACL,ACL 是否跟随文件从一台计算机传输到另一台计算机?

    我们的应用程序使用的组件需要在可执行文件的目录中包含许可证文件 该文件恰好是 NET WinForms 应用程序 尽管我认为这对这个问题并不重要 当安装在某些 XP Pro 计算机上时 迄今为止仅数百台计算机中的三台 该组件会引发许可证异常