У меня есть пользователь gitlab-runner
который запускает CI, и в основном всякий раз, когда я нажимаю что-то в репозиторий gitlab, он создает проект, а затем копирует его в /var/www/stanislavromanov.com
.
Проблема в том, что у него нет на это разрешения.
$ cp -R ./build/* /var/www/stanislavromanov.com/
cp: cannot create regular file '/var/www/stanislavromanov.com/404.html': Permission denied
cp: cannot create directory '/var/www/stanislavromanov.com/blog': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/ci.log': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/favicon.ico': Permission denied
cp: cannot create directory '/var/www/stanislavromanov.com/fonts': Permission denied
cp: cannot create directory '/var/www/stanislavromanov.com/img': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/index.html': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/index.xml': Permission denied
cp: cannot create directory '/var/www/stanislavromanov.com/privacy': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/scripts.js': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/sitemap.xml': Permission denied
cp: cannot create regular file '/var/www/stanislavromanov.com/styles.css': Permission denied
ERROR: Build failed: exit status 1
Я пробовал это: sudo chown -R gitlab-runner /var/www
и это sudo chown -R gitlab-runner:gitlab-runner /var/www
.
Все еще есть такая же ошибка. Я на 100% уверен, что пользователь gitlab-runner
потому что когда я делаю whoami
это показывает gitlab-runner
.
Что я делаю не так?
Я исправил это, установив chmod 777 на stanislavromanov.com
однако я считаю, что это далеко не оптимальное решение.
Во-первых, я бы не стал менять владельца или группу POSIX рекурсивно для всего каталога www, для этого можно использовать расширенные списки контроля доступа. Для этого вам нужно сделать sudo setfacl -R -m u:gitlab-runner:rwx /var/www
.
Затем вы можете добавить пользователя gitlab-runner в файл sudoers и изменить свои сценарии, добавив sudo
к соответствующим командам. В противном случае вам нужно будет увидеть результат getfacl
в целевом каталоге.