【问题标题】:How to add privileges to the nt authority\network service account for GitHub Actions?如何为 GitHub Actions 的 nt authority\network 服务帐户添加权限?
【发布时间】:2020-04-05 19:33:34
【问题描述】:

GitHub Actions 自托管运行器在 nt authority\network service 帐户下运行。

根据https://docs.microsoft.com/en-us/windows/win32/services/networkservice-account

它在本地计算机上具有最低权限,并充当网络上的计算机。

我正在尝试使用 GitHub Actions 自托管运行器将应用程序部署到我的服务器。为此,我需要访问schtasks.exe,它目前提供ERROR: Access is denied.

如何授予nt authority\network service 权限,使其能够访问schtasks.exe

【问题讨论】:

    标签: windows windows-server github-actions


    【解决方案1】:

    我发现我的问题最简单的解决方案是更改运行 GitHub Actions 服务的帐户。

    我通过使用powershell "(Get-Service actions.runner.*).name"查找 GitHub Actions 服务的名称来实现这一点。

    然后运行sc config "NAME_OF_YOUR_SERVICE" obj= "NT AUTHORITY\SYSTEM" type= own 将其更新为作为系统运行。

    编辑:

    正如@Lex Li 所说

    CI 代理(用于 Azure Pipelines 或 GitHub Actions)应在 专用帐户(在 Windows 上通常是 Active 的服务帐户 目录),以便您可以调整其对各种资源的权限。

    【讨论】:

    • config.cmd 确实会询问您是否要在另一个帐户下运行该服务,因此您之后很少需要更改它(但您当然可以)。顺便说一句,“非常糟糕”的部分并不那么明显。对于启用了 Actions 的 GitHub 上的 repo,repo 管理员应该负责正确设置所有内容,然后其他贡献者只需使用它(就像使用 GitHub 维护的运行器一样)。这些贡献者不应该期望访问自定义运行器服务器。
    • 我的错,我在设置时没有注意到这一点。我想处理安全性的最佳方法是设置具有所需特定权限的用户帐户。我习惯使用默认情况下代理作为系统运行的 Azure DevOps。
    • 正确。 CI 代理(用于 Azure Pipelines 或 GitHub Actions)应在专用帐户(在 Windows 上通常是来自 Active Directory 的服务帐户)下运行,以便您可以调整其对各种资源的权限。
    • 我已经更新了我的答案以包括此内容,以消除不熟悉此内容的其他人的任何困惑。
    猜你喜欢
    • 1970-01-01
    • 2016-08-05
    • 2014-12-06
    • 2011-01-16
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    相关资源
    最近更新 更多