我有一个要求,即我的 Windows GUI 应用程序写入日志文件。但出于审计目的,运行该应用程序的某些用户无权访问这些文件。有什么办法可以处理应用程序需要与运行它的用户不同的文件权限这一事实吗?有人向我提出了一些建议,即编写一个 Windows 服务来管理日志记录或写入 Windows 事件日志。这将是一个重大变化,因为我们已经在写入磁盘上的文件,所以我希望我可以通过以不同的用户身份运行该应用程序来实现这一点。
我知道我可以使用已保存凭据的 runas 来执行此操作,但这是一种安全风险。我考虑过使用任务计划程序,但似乎这不会显示已登录用户的 UI。
答案1
正如评论所说,事件日志将是实现此目的的理想方式。可以设置这些权限,但似乎很脆弱。如果您的用户需要提升应用程序的权限,这可能会取代您的日志用户的权限并带来风险或离开其沙盒并“失去连接”。它还存在创建大量日志的风险,而用户则无权清理这些日志。您需要另一个管理流程来执行此操作;滚雪球效应。