«Архитектура» файла не меняется - вам нужно убедиться, что он имеет правильный формат. Таким образом, файл уже должен быть действительным двоичным файлом ELF, или сценарием с действительным #!
заголовком, или чем-то еще, что распознает ваше конкретное ядро (например, a.out или MZ / PE).
Для chmod
этого достаточно установить бит в разрешениях файла, сообщая ядру, что пользователю разрешено выполнять этот файл. Он может действовать как небольшой защитный барьер, а также предотвращать определенные виды аварий. (Обратите внимание, что +x
здесь это сокращенное ugo+x
обозначение; это бит разрешения, такой же, как чтение / запись.)
Если вы установите + x для файла, который ядро не распознает, он просто вернет код ошибки из exec
системного вызова. (Обратите внимание, что некоторые оболочки имеют специальную обработку для этого - если ядро сообщило о «нераспознанном формате», оболочка попытается внутренне интерпретировать файл как скрипт, так как именно так работали сценарии оболочки до того, как #!
был изобретен .)