Главная >> Инструкции >> Как сделать файл исполняемым в Linux

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

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

Когда вы загружаете различные установщики программ из интернета или создаете скрипт в текстовом редакторе, для них устанавливаются флаги по умолчанию - только чтение и запись. Вы не сможете запустить такой файл как программу, с ним нужно сделать еще кое-что. В этой статье мы рассмотрим как сделать файл исполняемым в Linux.


Содержание статьи

Что такое исполняемость?

Уже много написано о том, как установить флаг исполняемости. Но что происходит с файлом во время этого, что такое исполянемость и как это работает?

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

На самом деле для процессора нет разницы между данными и инструкциями. И те и другие состоят из байт, проще говоря цифр. Когда-то договорились, что определенные сочетания цифр будут означать то или иное действие процессора, а во всем остальном это те же данные. Поэтому для процессора нет никакой разницы что выполнять - исполняемый файл linux или обычный текстовый файл. Оба могут быть успешно выполнены, вот только во втором варианте инструкции не имеют никакого смысла.

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

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

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

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

  • Категория - флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
  • Действие - может быть + (плюс), что будет значить установить флаг или - (минус) снять флаг.
  • Флаг - один из доступных флагов - r (чтение), w (запись), x (выполнение).

Например, чтобы сделать исполняемый скрипт в linux для владельца файла, достаточно выполнить:

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

bin1

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

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

Посмотреть флаги в терминале можно с помощью утилиты ls:

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

bin2

Это значит, что все флаги включены для всех категорий. Первое rwx - флаги владельца, второе - группы, а третье - для всех остальных. Если флаг не установлен, на его месте будет прочерк.

Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

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

Как установить флаг исполняемости в GUI

Вы можете сделать файл исполняемым в linux не только через терминал. Такая функциональность есть во всех файловых менеджерах. Возможно, на первых порах это будет для вас проще. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:

bin3Дальше перейдите на вкладку права и установите галочку Разрешить выполнение файла как программы:

bin4

Готово, исполняемый файл linux может быть запущен системой, прямо из файлового менеджера.

Выводы

Вот и все, теперь вы знаете как сделать файл исполняемым в linux. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!

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

    • у меня в гуи когда захожу в безопасность нету кнопки make excutable чта делать через chmod пишет что no such file or directory спасите

      Ответить
  1. Добрый вечер ! Не запускается текстовый файл , который является исполнительным скриптом. Пытаюсь запустить в терминале LXterminal, выходит черный пустой экран. Подскажи пожалуйста

    Ответить
  2. нужно запустить appImage из флешки. Отсутсвуют права для запуска исполняемых файлов из media.

    Открываю терминал, набиваю команду sudo su
    password,
    chmod u+rx /media/vladimir/32Gb/file.appimage
    vladimir#
    проверяю права:
    vladimir# ls -l /media/vladimir/32Gb/file.appimage
    результат:
    -rw-r--r-- 1 vladimir vladimir -размер файла, дата - file.appimage
    vladimir#
    Что я делаю неправильно?
    Из домашней папки файл нормально запускается, а во флешке даже в правах отметку в чекбоксе не принимает.

    Ответить
  3. проверяю примонтированные устройства:
    #sudo mount
    #/dev/sdb1 on /media/vladimir/32Gb type vfat (rw;
    в загрузочных флешках используют fat, почему не поддерживает Линукс? Коим образом научить поддерживать? повторяю пост, -- первый раз не отобразился, почему-то

    Ответить
  4. Admin: «Какая файловая система на флешке? FAT и NTFS не поддерживает атрибуты файловых систем Linux.»

    ещё раз зашёл в gparted: "FAT поддерживают все ОС", скрины не прикрепляются у вас, показал бы

    Ответить
  5. Не получается запустить простой скрипт с рабочего стола ubuntu:
    #!/bin/bash
    echo "Hello"
    --
    если запускать из командной строки ./file то работает

    Ответить
  6. ╭─root@debian /home/user
    ╰─➤ chmod u+x xprofile
    chmod: невозможно получить доступ к 'xprofile': Нет такого файла или каталога
    ╭─root@debian /home/user
    ╰─➤ chmod u+x .xprofile 1 ↵
    ╭─root@debian /home/user
    ╰─➤
    а вот так работает
    debian11 bullseye, slim

    Ответить
  7. Меня бесит данный вопрос.
    Запустить файл или просмотреть его содержимое?
    Файл является исполняемым текстовым файлом
    Как отключить?

    Ответить
  8. Устанавливаю программу в Debian с интерфейсом Gnome. Файлы находятся в папке Download. Исполняемый скрипт, который запускает установочный пакет находится в файле install.txt. Сессия с правами администратора. В файловом менеджере выставляю значок разрешение на исполнение скрипта, значку ни куда не исчезает, но скрипт не исполняется, программа не устанавливается. Ставил разные версии Debian - оригинальные, усовершенствованные, скомпилированные самим производителем устанавливаемой программы.
    Скрипт не исполняется. В лучшем случае появляется ошибка «Файл не найден» или совсем ни чего не появляется.
    Что можно предпринять, что бы программа установки запустилась?
    Спасибо за статью ❤️

    Ответить

Оставьте комментарий