我希望能够在CodeDeploy上设置"部署"用户,而不是以root身份执行所有操作。可能吗?
CodeDeploy 服务或代理的 root 用户之外,没有以任何其他用户身份运行的选项。安装软件通常需要 root 权限,并且至少需要像其他用户通常那样运行进程。
如果要限制代理的有效权限,可能需要查看 SElinux。您可以使用 SElinux 来限制对主机代理可执行文件的访问。如果您选择通常使用 SElinux,则主机代理能够设置文件的上下文。
完成所有这些操作后,如果您确实想以其他用户身份运行 CodeDeploy 代理,请尝试以下操作:
- 正常安装主机代理。
- 停止主机代理。
- 删除更新程序 cron 选项卡文件,使其不会以 root 身份重新启动代理。您必须手动检查并更新代理,因为所有自动售货版本都假定您要以root身份运行。
- 将
/opt/codedeploy-agent/
中的所有内容的所有权更改为要运行的用户。 - 运行
/opt/codedeploy-agent/bin/codedeploy-agent start
.
您还需要确保不要尝试在 appspec 中指定用户运行身份或文件权限,因为代理可能无法执行这些操作,但无论如何它都会尝试这样做。