У меня есть следующая проблема на моей CentOS VM.
В виртуальной машине я запускаю процесс gitlab-runner от имени пользователя root - см. Мой сервис systemd.
root@runner1:~$ cat /etc/systemd/system/gitlab-runner.service | sed 's/^/ /'
[Unit]
Description=GitLab Runner
After=syslog.target network.target
ConditionFileIsExecutable=/usr/lib/gitlab-runner/gitlab-runner
[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/gitlab-runner/builds/" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "root"
Restart=always
RestartSec=120
[Install]
WantedBy=multi-user.target
Для некоторых сборок требуются права суперпользователя для создания или удаления файлов в определенных местах. Теперь gitlab-runner всегда выдает ошибки. Причина в том, что процесс gitlab-runner, хотя и запущен с правами root, выполняет подпроцессы, работающие как пользователь gitlab-runner. Вот фрагмент моего файла журнала конвейера
$ id -u
997
$ whoami
gitlab-runner
$ rm -rf /tmp/*
rm: cannot remove ‘/tmp/ks-script-1yMUS_’: Operation not permitted
rm: cannot remove ‘/tmp/ks-script-jNgpQ5’: Operation not permitted
rm: cannot remove ‘/tmp/systemd-private-1838297d1ab047a99c3628869e77fd18-chronyd.service-z1RO0u’: Operation not permitted
rm: cannot remove ‘/tmp/tmp.THBemf0N5O’: Operation not permitted
rm: cannot remove ‘/tmp/yum.log’: Operation not permitted
Как я могу запретить gitlab-runner запускать подпроцессы под другим пользователем?
Volker