Местоположение Non-sudo для сценария

Я пытаюсь преобразовать простой сценарий пакетной обработки в пакет. Согласно моему (ограниченному) пониманию упаковки, это означало бы, что я сохраню сценарий в /usr/bin.

Проблема, сценарий пакетной обработки использует другой sh сценарий, сохраненный где-то в другом месте. sh скрипт не может быть запущен как a sudo, и для sh сценария нужно к чтению-записи в файлы в каталоге sh сценария. То, что это означает, - то, что я должен иметь расположение для хранения этого сценария (и файлы, которые он использует) без требования sudo. Это было бы возможно?

(BTW, поскольку сценарий также загружает файлы на пользовательский корневой каталог (~), я не могу заставить кого-то запустить скрипт с sudo потому что принадлежность файла затем неправильно обрабатывается с загруженными файлами. Если это не было бы закрепляемым.)

0
задан 26 February 2016 в 19:23

1 ответ

Ручное выполнение

Можно выполнить использование команды bash /path/to/your.sh. Если Вы устанавливаете файл как исполняемый файл ( chmod +x /path/to/your.sh ), затем можно сделать /path/to/your.sh и это будет автоматически работать под ударом. Необходимо будет удостовериться, что сценарий имеет хижину.

$PATH

Обзор


$PATH является переменной окружения, которая перечисляет все местоположения, в которых требуется искать двоичные файлы при выполнении команды.

Это то, как /usr/bin используется для двоичных файлов.

Вы видите свой текущий $PATH путем открытия терминала и выполнения echo $PATH.

/most/important/path:/less/important/path

Как пример выше чтений, пути имеют приоритеты; сначала искавший сначала. Это означает, что, если существует две версии двоичного файла, тот в первом пути будет использоваться. После того как двоичный файл найден, он прекращает искать на других каталогах в Вашем $PATH.

При попытке работать banana, Ваш компьютер собирается выглядеть на /most/important/path. Если это находит banana, это выполнит его. В противном случае это продолжит искать, идя дальше к /less/important/path.

Модификация


Для добавления каталогов к пути пользователя Вы могли добавить их к Вашему ~/.bashrc файл. Вместо того, чтобы перезаписать и испортить Ваш путь, необходимо добавить к нему. Например:

export $PATH=${PATH}:/new/less/important/directory

Или можно предварительно ожидать для установки его как каталога самого высокого приоритета:

export $PATH=/new/more/important/path:${PATH}

Для предотвращения проблем необходимо, вероятно, только добавить (первый пример).

1
ответ дан 29 September 2019 в 11:24

Другие вопросы по тегам:

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