我的软件有一个备份/自动更新过程,通常我会创建一个新用户在任务计划程序中运行它(大多数用户没有密码,而任务计划程序需要它,不知道为什么)。
然后我看到谷歌浏览器将其自动更新任务安装为以“NT AUTHORITY\SYSTEM”身份运行,我已经测试过它并且它在我的程序上运行良好,而且看起来更干净,
这里是否存在一些我没有看到的隐藏缺点?
谢谢!
答案1
我的建议
对于单台机器,最直接的方法是创造Builtin 下的帐户备份操作员团体。
在以下环境中运行程序时,首先想到的是两个大缺点:系统。
安全
管理员为计划进程创建谨慎帐户的最大原因几乎总是为了监控它们并授予它们访问权限,而这些访问权限通常不会授予正在运行的典型应用程序。在这种情况下,它需要对所有文件的读取权限,并需要对备份存储位置的写入权限,后者往往具有更严格的访问权限。
给任何运行如下的程序系统相当于以管理员身份运行它们,从而授予其超出其需要的权限。出于这个原因,有一个内置的备份操作员组。
联合航空
SYSTEM 帐户有时会被用户误认为是超级用户或根帐户。两者都不是。它由 Windows 内部使用。除非程序指定,否则它从未打算由程序使用。话虽如此,如果运行不是为 Windows 设计的程序,就会出现未知的错误。系统帐户。首先,请注意它没有用户密码。它实际上也不是用户帐号如果您尝试远程对其进行身份验证。
据传,UAC 还会对在 SYSTEM 上下文中运行的程序造成严重破坏。我见过编写糟糕的程序直接弹出对话框,要求用户“以管理员身份运行”。想想看。
另外,我还记得一篇 MSDN 博客文章,我找不到,文章中作者花了一整天时间在客户的机器上调试 SQL Server。全新安装……或者他们以为是。结果发现,操作系统本身的某个组件从 NT AUTHORITY\NETWORK SERVICE 切换到了 SYSTEM,伪装成它有一个更多的与其他账户相比,它拥有更多的权限和特权。相反,它只是拥有不同的权限和特权。