Есть bash-скрипт который содержит команды распаковки репозитория в директорию с проектом, делает сборку, и запускает приложение (node-js):
git archive --remote=/git-repo/repositories/test/myProject.git master | tar -x -C /myProject/
forever stop "myProject"
node --use_strict bin/init
forever start -a --uid "myProject" --minUptime 20000 --spinSleepTime 20000 bin/start --use_strict
Когда он срабатывает я получаю в конслоли:
tar: app/import/files/price: Функция utime завершилась с ошибкой: Операция не позволена
tar: app/import/files/price: Невозможно изменить права доступа на rwxr-xr-x: Операция не позволена
tar: app/import/files/staticPages: Функция utime завершилась с ошибкой: Операция не позволена
tar: app/import/files/staticPages: Невозможно изменить права доступа на rwxr-xr-x: Операция не позволена
Права на каталоги проекта:
drwxrwxrwx 8 www-data www-data 4096 app
drwxrwxrwx 2 www-data www-data 4096 bin
-rw-r--r-- 1 node www-data 7 CHANGELOG
drwxrwxrwx 5 www-data www-data 4096 config
drwxrwxrwx 7 www-data www-data 4096 core
drwxrwxrwx 7 testUser testUser 4096 gen
drwxrwxrwx 652 testUser testUser 20480 node_modules
-rw-r--r-- 1 node www-data 2100 package.json
-rw-r--r-- 1 node www-data 696 README.md
Скрипт этот срабатывает при пуше в репозиторий с помощью gitlab-ci-runner, т.е. из под юзера gitlab-runner, выполняется такая команда
- sudo su -c /myProject/bin/myStartScript.sh node
Что мне нужно сделать с правами, что бы все работало как полагается (распаковка репозитория git archive, сборка и запуск приложения так чтобы оно имело права не только читать но писать файлы - процесс приложения добавится в forever.js от юзера node)?