Исполняемые биты - это основная мера безопасности UNIX, поэтому обойти это непросто (по уважительной причине). Думая об этом, для конкретного случая загружаемых файлов Windows также применяет некоторые ограничения (специальный поток NTFS, который сообщает проводнику Windows, чтобы предупредить об опасностях исполняемого файла из Интернета).
Вы, конечно, можете предоставитьваше приложение в виде .tar.something
архива и хранит там исполняемые файлы. После извлечения у них обычно будут установлены правильные биты выполнения.
Опция с deb-package также может решить вашу проблему (для некоторых пользователей), но немного сложнее:
- Пользователь загружает пакет deb
- Пользователь нажимает на пакет deb, и на нем установлена некоторая программа, которая предоставляет графический интерфейс для установки пакетов (например, gdebi). Как и в Windows, будет некоторая «проверка безопасности» в виде диалогового окна, в котором пользователю необходимо ввести пароль (sudo). После этого apt установит пакет
- . Если пакет создан правильно, он может правильно перенести исполняемый бит, так что после этого не требуется явного изменения разрешения. Если по какой-то причине необходимо выполнить что-то после установки, пакеты Debian могут предоставить
postinst
сценарии, которые запускаются (от имени root!) В конце установки пакета.
В любом случае,поскольку работа с исполняемыми файлами - это обычная процедура в Linux, она может не отпугнуть стольких пользователей, как ожидалось. Если вы хотите, чтобы пользователям было удобно, предоставьте пакет так, как они ожидают. В Windows я бы подумал, что это пакет .msi
, а в Linux я предпочитаю пакет, соответствующий моему дистрибутиву (.deb
, .rpm
).
Если вы хотите, чтобы пользователи регулярно обновляли свои пакеты(хорошо для безопасности), тогда полезно предоставить «хранилище», из которого пользователи могут добавлять и устанавливать ваш пакет. Конечно, «лучшим» является наличие пакета как части дистрибутива, но это довольно трудоемкое и требует много «ворот контроля качества»:)