锁定一个文件仅供一个程序写入?

锁定一个文件仅供一个程序写入?

在 Windows 7 中是否可以锁定文件仅供一个人写入程序?任何人都可以拥有读取或复制权限,但我需要仅由一个程序执行写入/移动/删除操作。

答案1

典型答案:不。Windows NT 安全性适用于 SID(用户、组、特殊组...)。程序不不是 1 2具有可以使用的唯一 SID,并且您不能向任何 ACL 添加进程名称或路径。

同一用户运行的所有程序都具有相同的 SID – 该用户及其所在的所有组。(每个会话的登录 SID 都不同,但在会话内仍然保持相同。)

然而,你可以创建单独的用户帐户只需针对该程序,然后使用“以...身份运行”启动该程序。该帐户可轻松从“欢迎”屏幕隐藏。

runas /user:myapp /savecred /noprofile "myapp.exe"

某些程序(通常是病毒反病毒工具)会安装系统驱动程序,这些驱动程序会挂接 Windows 内核函数,以禁止修改某些文件或注册表值(除非由某些进程修改)(例如,只允许从其自己的 GUI 禁用防病毒软件)。这需要大量工作(编写驱动程序,确保它不会使用户的系统崩溃,找到验证该过程的方法……),并且很可能在以后的 Windows 版本(Vista 及更高版本)中无法可靠地运行。


1 个Windows服务从 Windows Vista 和 Server 2008 开始,确实获得了唯一的 SID。 (但是,它们也失去了以交互方式运行的能力,因此这对您没有帮助。)

2 Windows 8 中的 Metro 应用有自己的 SID,称为应用容器 SID

答案2

这是对文件的标准锁定。通常通过在程序中打开文件来实现。除非程序明确表示可以共享,否则文件将被锁定。

相关内容