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


Linux и Windows различаются в способе обработки исполняемых файлов. В Linux, в отличие от Windows, файлы не определяются исключительно по расширению, а требуют наличия специального флага, указывающего на их исполняемость.Этот флаг определяет режимы доступа к файлу: чтение, исполнение и запись. Например, при скачивании установщиков программ или создании скриптов, по умолчанию присваиваются режимы чтения и записи. Однако, для выполнения программы требуется выполнить дополнительные действия.

Итак, что такое исполняемость?

Это свойство файла, которое позволяет операционной системе понять, что файл содержит инструкции для выполнения программы.

Для процессора нет разницы между инструкциями и данными, они оба представлены в виде байтов. Конкретная последовательность байтов указывает процессору на необходимость выполнения определенных действий.

Для системы важно определить, какие файлы должны быть выполнены по инструкции, а какие - нет. И для этого используются флаги исполняемости. Содержимое файла не меняется в зависимости от флага исполняемости, отличие заключается только в нескольких строках кода. Для скриптов работает аналогичный принцип, но команды выполняет интерпретатор, такой как оболочка bash. Обычные программы также имеют свой загрузчик, например, ld-linux.so.2.

В Linux существует утилита chmod, которая позволяет управлять флагами исполняемости. Синтаксис команды выглядит следующим образом:

$ chmod категория действие флаг адрес_файла

Здесь важно учесть следующее:

  • Флаг может быть одним из трех: r (чтение), w (запись), x (исполнение).

  • Категория может быть одной из трех: владелец файла (u), группа данных (g), все остальные пользователи (o).

  • Действие может быть + (установка флага) или - (снятие флага).

Для того чтобы сделать файл исполняемым в Linux, достаточно выполнить следующую команду:

$ chmod u+x адрес_файла

В большинстве случаев это будет достаточно, однако, если требуется предоставить права на выполнение файлов другим пользователям, необходимо использовать следующую команду:

$ chmod ugo+x адрес_файла

Чтобы просмотреть флаги исполняемости файлов в терминале, можно воспользоваться утилитой ls:

$ ls -l каталог_с_файлами

Флаги исполняемости будут отображены для каждой категории. Если флаг не установлен, вместо него будет прочерк.

Снятие флага исполняемости выполняется аналогично, просто используется знак минус перед флагом:

$ chmod u-x адрес_файла

Теперь рассмотрим, как установить флаг исполняемости в графическом интерфейсе (GUI). Для примера рассмотрим менеджер файлов GNOME, Nautilus. Чтобы установить флаг исполняемости, щелкните правой кнопкой мыши на файле или скрипте, выберите "Свойства" в контекстном меню, затем перейдите на вкладку "Права" и поставьте галочку напротив "Разрешить выполнение файла как программы". Теперь файл будет выполняться непосредственно из менеджера файлов. Вуаля, готово. Теперь у вас не возникнет проблем с запуском программ и скриптов из интернета.