Возможности для исполняемой символьной ссылки на неисполняемый файл в Linux?

Легко использовать программу install из coreutils, которая обычно используется именно для этой цели при сборке систем типа automake:

install -D /path/to/source /path/to/destination

Обратите внимание, что install создает все части пути так же, как это делает mkdir -p, смотрите man install. Мне любопытно, почему вы не включили почему вы хотите это сделать. Позвонить mkdir и cp очень просто.

.
1
20.03.2017, 12:04
2 ответа

SymLink не будет работать. Жесткая ссылка (когда это возможно) не будет работать ни потому, что оба файла будут иметь одинаковые разрешения. Но я бы сделал следующее: вместо ссылки напишите сценарий оболочки /usr/bin/myscript.py , который выполняет сам скрипт:

#!/bin/sh
exec python /path/to/wherever/I/have/put/myscript.py "$@"

«$ @» передает какие-либо параметры; Если ваш сценарий не принимает никаких параметров, вы можете безопасно удалить эту часть.

2
27.01.2020, 23:37

символьная ссылка А не влияет на полномочия своей цели, это - просто способ сохранить путь, это сопровождается автоматически ядром. На самом деле много систем игнорируют полномочия символьных ссылок в целом.

жесткая ссылка А не помогла бы вам, так как это - способ иметь тот же файл (то же содержание, те же метаданные включая полномочия) в нескольких местоположениях в файловой системе.

можно использовать bindfs для создания альтернативного представления файловой системы, где файлы имеют другое разрешение.

bindfs --perms=a+x /path/to/wherever/I/have/put ~/bin/wherever

, Который сделал бы все файлы в альтернативном исполняемом файле представления. Это - вероятно, не удобный метод в вашем случае, но может быть полезно для других с подобной проблемой.

действительное решение для вас состояло бы в том, чтобы зафиксировать систему репозитория так, чтобы это не заботилось о полномочиях, предполагая, что система загрузки может к исполняемому файлу make-файлов. Сбой этого, что я сделал бы, состоит в том, чтобы изменить разрешение файлов после загрузки.

#!/bin/sh
actual-download-command
chmod +x /path/to/wherever/I/have/put/*.py
0
27.01.2020, 23:37

Теги

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