Linux系统/usr/local中GitHub自托管Runner的目录归属及运行用户最佳方案
GitHub自托管Runner Linux运行用户的安全最佳实践
绝对不要用root(超级用户)运行GitHub自托管Runner——Runner会执行工作流里的任意代码,root权限会让恶意代码直接掌控整个系统,风险极高。
推荐的安全运行方式按优先级排序:
用你已设置所有者的普通用户运行
你已经通过chmod -R <my user> /usr/local/actions-runner把目录所有者改成了自己的普通用户,直接用这个用户运行run.sh完全可行。普通用户权限有限,就算工作流里存在恶意代码,能造成破坏的范围也会被严格限制,这是最基础的安全保障。创建独立的专用系统用户(更严谨的方案)
如果想进一步隔离风险,可以专门创建一个仅用于运行Runner的系统用户,比如github-runner:- 创建用户:
sudo useradd -m -d /home/github-runner -s /bin/bash github-runner - 调整目录权限:
sudo chown -R github-runner:github-runner /usr/local/actions-runner - 切换到该用户启动Runner:
su - github-runner -c "/usr/local/actions-runner/run.sh"
这么做能把Runner的运行环境和你的个人用户完全隔离开,避免权限交叉带来的额外风险。
- 创建用户:
额外安全提醒:
- 不要给运行Runner的用户开放sudo权限,除非工作流确实必须用到(就算要开,也要通过
sudoers配置最小必要权限,绝对不能给无限制的sudo) - 定期更新Runner到最新版本,GitHub会持续修复安全漏洞
- 做好Linux系统本身的安全加固:比如启用防火墙、关闭不必要的服务、定期更新系统包
内容的提问来源于stack exchange,提问作者mcnnowak
相关产品推荐
相关产品推荐

