我是一名应用程序开发人员,开发一个相当大应用程序套件。我们的理念/最佳实践是绝不直接在生产中修改文件,但出于这样或那样的原因,这种情况有时会发生。
我们希望找到一种有效地执行该做法的方法,即永远不允许文本编辑器或来自已安装网络驱动器的程序打开某个目录(本身就是 Apache2 服务器主目录内的目录)上的文件,但仍然能够通过文件传输以正常方式更新这些文件。
这样的事可能吗?如果不可能,下一个最好的选择是什么?我们目前正在使用 Windows Server 2003。也对 Windows Server 2012 R2 感兴趣。
答案1
如果您的应用程序在普通用户不用于登录的某个帐户下运行,则您只需设置文件权限以拒绝读取访问。
如果您的应用程序始终在 Apache 或其他服务进程下运行,您可以执行以下操作:
icacls.exe C:\AppData\ /T /deny "NT AUTHORITY\INTERACTIVE:(M)"
现在没有交互式用户可以打开该文件,甚至管理员也不行。我不确定通过网络共享访问文件时这是否有效,但你也许可以找出适合你的权限。