GitLab CI / CD更改文件夹和文件夹权限

问题描述 投票:1回答:1

我目前正在构建一个GitLab CI / CD脚本,用于在服务器上自动部署Web应用程序。将文件复制到服务器的最后一项任务失败。问题在于,所有复制的文件都是根据gitlab-runner:gitlab-runner权限创建的(GitLab-runner作为shell运行程序安装)。但是,我希望为www-data用户更改这些权限。

因此,我已将以下脚本添加到gitlab-ci.yml中

- /bin/chown www-data:www-data /var/www/[NAME]/*
- /usr/bin/find /var/www/[NAME] -type d -exec /bin/chmod 755 {} \;
- /usr/bin/find /var/www/[NAME] -type f -exec /bin/chmod 644 {} \;
- /bin/chmod 660 /var/www/[NAME]/.env

并且,由于我不想在不输入密码的情况下赋予gitlab-runner用户root特权,所以我在sudoers文件中创建了以下条目

gitlab-runner ALL=(ALL:ALL) NOPASSWD: /usr/bin/find /bin/chmod /bin/chown

但是,所有操作都会失败,并显示错误消息,例如:

/bin/chown: changing ownership of '/var/www/[NAME]/app': Operation not permitted

[NAME]文件夹的权限是

drwxrwxr-x www-data www-data

我做错了什么?也许我更改CI / CD脚本中的权限的方法是错误的?但是,如何在不使用www-data用户下运行gitlab-runner的情况下,防止复制的文件属于gitlab-runner用户呢?

gitlab gitlab-ci ubuntu-server
1个回答
0
投票

我解决了。根据此Change Gitlab CI Runner user,我能够将我的应用程序部署为www-data用户。

© www.soinside.com 2019 - 2024. All rights reserved.