Создал новый сценарий оболочки, но мне отказывают в разрешении при его запуске. Дать себе разрешение — это не проблема, но как насчет других?

#git #shell

Вопрос:

Название подводит итог. Я написал два основных сценария, на которые ссылается наш package.json. Мне нужно изменить разрешения на сценарий локально, чтобы он работал. Однако они должны быть объединены с нашей кодовой базой, и всем потребуется разрешение на выполнение сценария. Я не уверен, как это сделать?

 /bin/sh: 1: scripts/extract.sh: Permission denied   

Я получаю эту основную ошибку и, очевидно, могу исправить ее с помощью

 chmod  x scripts/extract.sh  

но другим придется сделать то же самое, если только нет способа сделать это так, чтобы никто другой не должен был?

package.json ссылается на эти сценарии следующим образом:

 "scripts": {  "extract": "scripts/extract.sh",  "compile:languages": "scripts/compile-languages.sh",  

и я просто бегу yarn compile:languages , например.

Комментарии:

1. Вы не сказали, как вы запускаете сценарий. Также пожалуйста, удалите метку bash; в вашей проблеме нет bash. В сообщении об ошибке четко указано /bin/sh , а не bash .

2. Хорошо, отредактировано. Дайте мне знать, если я что-то упущу, извините за это.

3. Вам следует добавить тег yarn , потому что ваша проблема, похоже, связана с тем, как настроить yarn для выполнения сценария. Я не знаю пряжи, поэтому не могу много рекомендовать. Если вы не хотите давать исполняемые записи, вам придется заставить yarn работать sh script/extract.sh вместо script/extract.sh этого . В этом случае требуются только разрешения на чтение.

4. Вы провели еще какие-нибудь исследования? Должны быть какие — то другие проекты, которые делают это.

5. Git отслеживает состояние исполняемого файла. Если у вас git add есть исполняемая копия, любой, кто проверит эту копию, получит исполняемую копию.