gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:11:00 26 4
gpt4 key购买 nike

我目前正在构建一个 GitLab CI/CD 脚本,用于在我的服务器上自动部署我的 Web 应用程序。将文件复制到服务器的最后一个任务失败。问题是所有复制的文件都创建为 gitlab-runner:gitlab-runner 权限(GitLab-runner 安装为 shell runner),这是显而易见的。但是,我希望为 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 用户?

最佳答案

我解决了。根据这个Change Gitlab CI Runner user我能够以 www-data 用户的身份部署我的应用程序。

关于GitLab CI/CD 更改文件夹和文件夹权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60978644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com