我编写了一个工作流来在 Linux 自托管 GitHub 运行器 VM 上安装一些工具依赖项。我正在使用自制软件来安装工具。使用 homebrew 要求它不能在 GitHub Runner 登录的 root 用户上运行。我想知道为什么当我创建一个将用户从 root 切换到我的测试用户的步骤时,事情会中断,但是当我在每个步骤中对那个用户执行 sudo 时一切正常,我想我解释得不好,所以见下文:
失败的工作流程(可以看到第一步将用户切换到 testUser):
installHomebrew:
name: Install Homebrew
runs-on: [self-hosted]
steps:
- name: Switch to etpAdmin user
run: sudo -u testUser -i
- name: Install Homebrew silently
run: sudo apt install linuxbrew-wrapper -y
- name: Run brew for the first time to create the .linuxbrew directory
run: brew -h
这将在最后一步失败,声称不应在 root 上运行自制软件,而以下工作流程可以正常工作。
installHomebrew:
name: Install Homebrew
runs-on: [self-hosted]
steps:
- name: Install Homebrew silently
run: sudo apt install linuxbrew-wrapper -y
- name: Run brew for the first time to create the .linuxbrew directory
run: sudo -u testUser -i brew -h
我的 Linux 有点生锈,但我的印象是使用sudo -u (username) -i
会将终端登录到指定的用户,直到再次注销/切换用户,我错了还是有更好的方法来完成这个?