Sanu0074
@Sanu0074

NodeJS + GIT + Linux — что не так с правами на файлы?

Есть 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)?
  • Вопрос задан
  • 523 просмотра
Пригласить эксперта
Ответы на вопрос 1
vitali1995
@vitali1995
Что мне нужно сделать с правами, что бы все работало как полагается?

Установить права на запись для вашего пользователя (видимо, testUser).
Права устанавливает тот, кто их имеет, т.е. root (и, возможно, gitlab-runner)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы