Как разрешить программе файлу исполняться
Перейти к содержимому

Как разрешить программе файлу исполняться

  • автор:

Ubuntu Как сделать файл исполняемым? [дубликат]

Скачал run Xammp но написано что надо его сделать его исполняемым , как это делается правильно ?

Отслеживать

задан 11 янв 2016 в 15:00

user33274 user33274

man chmod. Или не вдаваясь в подробности chmod a+x filename

11 янв 2016 в 15:01

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

[sudo] chmod +x

Отслеживать

5,774 21 21 серебряный знак 32 32 бронзовых знака

ответ дан 11 янв 2016 в 15:23

Alexcei Shmakov Alexcei Shmakov

5,943 18 18 серебряных знаков 32 32 бронзовых знака

Только sudo может быть и лишним тут.

11 янв 2016 в 15:32

@andy, думаю вы правы, убрал.

11 янв 2016 в 15:34

Заходите в свойства файла — Права — нажимаете на галочку Разрешить выполнение файла как программы

Отслеживать

ответ дан 11 янв 2016 в 15:17

516 3 3 серебряных знака 19 19 бронзовых знаков

    Важное на Мете
Связанные
Похожие

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420

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

Весьма часто в инструкциях по установке игр в Linux или в других ситуациях необходимо сделать файл выполняемым. У новичков, особенно тех кто перешёл на Ubuntu с операционной системы Windows этот момент возбуждает много вопросов. Давайте разберёмся в тонкостях и посмотрим как сделать всё правильно. Для начала чуть-чуть теории. в Windows, исторически ещё со времён DOS, было реализовано определение исполняемых файлов по их продолжению.

В Linux и других unix системах ситуация иная. Здесь расширение файлов как таковые отсутствуют, т.е. безусловно вы можете в имени файла использовать точку и три буквы в качестве расширения, но только из собственных эстетических соображений. Для операционной системы это не будет иметь никакого значения. Ну и главный вопрос как же операторная система определяет какой файл исполняемый, является программой, а какой нет. Всё очень элементарно — это устанавливается одним из битов прав на файл.

Исполняемые файлы в Linux

В вопросах исполняемых файлов, то есть, когда по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые компданные имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu выполняемым может быть даже текстовый файл. Сразу скажу, что exe — это программы для Windows и в Ubuntu они не трудятся без Wine (приложения для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они трудятся далеко не всегда.

Читайте также: Как настроить OpenVPN с Stunnel на сервере Ubuntu 22.04/20.04

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

Читайте также: Как в Linux дать все права на папку?

Характерные черты исполняемых файлов в Linux

Пользователи, активно применяющие в повседневной работе операционную систему Windows, свыкнули к тому, что программы имеют расширение «.exe». Такие файлы содержат скомпилированный программный код, или иными словами – последовательность байтов, которая загружается в оперативную память и выполняется процессором. Linux реализует асбсолютно другой подход. Ранее, изучая написание скриптов командного интерпретатора Bash, мы уже поспели рассмотреть пример создания исполняемого файла. Он в отличие от Windows представляет собой обыкновенный текстовый документ с набором команд. Его особенностью является то, что перед основным содержимым дополняется специальный комментарий, говорящий операционной системе Linux, какую программу использовать для интерпретации. Кроме скрипта, исполняемым файлом является и скомпилированная программа. Таким образом, все файлы в Linux смогут быть, как обычными текстовыми документами, так и исполняемыми программами. Отличие лишь в специальных флагах и преимуществах доступа операционной системы (множество элементов, находящихся в отношениях и связях друг с другом, которое образует определённую целостность, единство).

Читайте также: Настройка Squid для начинающих

Назначение прав для запуска файла в Linux

Сделать файл вразумительным для запуска можно с помощью графической оболочки. Нажмите по ярлыку правой кнопкой мыши. В контекстуальном меню выберите пункт «свойства». Открывшееся окно должно содержать вкладку «преимущества», в котором нужно активировать пункт «разрешить выполнение файла как программы». Данный метод будет отличаться в зависимости от дистрибутива Linux и графической оболочки. Также возможно приставить права запуска через консоль. Для этого используется команда chmod. Пример, презентованый ниже, устанавливает право выполнения для владельца файла и его группы. Вы можете скопировать Bash-скрипт из первоначального примера в файл и провести с ним данную операцию.

chmod ug+x games-dialog

Установка прав на пуск в Linux

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

chmod +x имя_файла

sudo chmod +x имя_файла

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

Как сделать файл исполняемым в 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. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!

Разрешения и права доступа к файлам Linux с примерами

Разрешения и права доступа к файлам Linux с примерами

Изучите все, что вам нужно знать о разрешениях файлов в Linux. Также узнайте, как изменить права доступа и собственности к файлам.
По дизайну Linux — многопользовательская операционная система. В корпоративной системе было бы несколько пользователей, обращающихся к одной и той же системе. Но если любой пользователь может получить доступ и изменить все файлы, принадлежащие другим пользователям или системным файлам, это, безусловно, будет угрозой безопасности.

Вот почему UNIX и, следовательно, Linux (Linux — Unix-подобная система) имеют встроенную меру безопасности. Это гарантирует, что доступ к файлу или каталогу может быть изменен только желаемыми пользователями.

К какому файлу будет обращаться пользователь, решает два фактора в Linux:

  • Владение файлами
  • Разрешение файла

Понимание прав собственности на файл и разрешения имеет решающее значение для пользователя Linux. Здесь мы подробно объясним эти условия.

Владение файлами в Linux

Мы можем использовать этот термин здесь, но он применим и к каталогам. Наверное, вы знаете, что каталоги — это файлы в любом случае.

Каждый файл и каталог в Linux имеет трех типов владельцев:

Пользователь

Пользователь является владельцем файла. Когда вы создаете файл, вы становитесь владельцем файла. Собственность также может быть изменена, но мы это позже.

Группа

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

Например, если у вас есть команда разработчиков, команда QA и команды sysadmin, обращающиеся к одной и той же системе, вы должны создать для них отдельные группы. Таким образом, вы можете эффективно управлять файлами и безопасностью системы. Это экономит время, потому что вместо того, чтобы вручную добавлять разрешения для каждого пользователя, вы можете просто добавить их в группу и изменить разрешение для группы. Вы увидите, как это сделать позже в этой статье.

Даже если вы являетесь единственным пользователем системы, вы по-прежнему будете частью многих групп. Такие дистрибутивы, как Ubuntu, также создают группу с именем, аналогичным имени пользователя.

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

Другие

Другие — это в основном супергруппа со всеми пользователями в системе. В принципе, любой, кто имеет доступ к системе, принадлежит этой группе.

Другими словами, «Пользователь» — это один пользователь, группа представляет собой набор пользователей, а «Другой» состоит из всех пользователей системы.

Разрешения для файлов в Linux

Каждый файл и каталог в Linux имеет три разрешения для всех трех типов владельцев:

Разрешения для файлов

  • Чтение — просмотр или копирование содержимого файла
  • Запись — может изменять содержимое файла
  • Выполнение — может запускать файл (если его исполняемый файл)

Разрешения для каталогов

  • Чтение — может перечислить все файлы и скопировать файлы из каталога
  • Запись — может добавлять или удалять файлы в каталог (требуется также разрешение на выполнение)
  • Выполнение — может войти в каталог

Общие сведения о разрешениях и правах доступа к файлам в Linux

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

Если вы используете команду ls с параметром -l в файле, вы увидите такой вывод:

-rwxrw-r-- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Позвольте нам объяснить этот результат с изображением:

Разрешения и права доступа к файлам Linux с примерами

Подробно весь вывод:

  • File type (Тип файла) : Обозначает тип файла. d означает каталог, — означает обычный файл, l означает символическую ссылку.
  • Permissions (Разрешения) : В этом поле отображается набор разрешений для файла. Я объясню это подробно в следующем разделе.
  • Hard Link Count (Количество жестких ссылок) : показывает, имеет ли файл жесткие ссылки. Счет по умолчанию — один.
  • User (Пользователь) : Пользователь, которому принадлежат файлы.
  • Group (Группа) : Группа, у которой есть доступ к этому файлу. Одновременно может быть только одна группа.
  • File Size (Размер файла) : Размер файла в байтах.
  • Modification timestamp (Время модификации) : Дата и время последнего изменения файла.
  • Filename (Имя файла) : Очевидно, имя файла или каталога.

Теперь, когда вы поняли вывод команды ls -l, давайте сосредоточимся на части разрешения файла.

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

rwxrw-r--

Каждая буква обозначает конкретное разрешение:

  • r: разрешение на чтение
  • w: разрешение на запись
  • x: выполнить разрешение
  • -: не установлено разрешение

Разрешения всегда находятся в порядке читать, писать и выполнять, т. е. rwx. И тогда эти разрешения устанавливаются для всех трех своего рода владельцев (см. раздел прав собственности) в порядке: Пользователь, Группа и Другое.

Эта картина лучше объяснит:

Разрешения и права доступа к файлам Linux с примерами

Итак, если вы посмотрите на приведенную выше картинку, вы можете сказать следующие вещи о разрешениях файлов:

  • Файл имеет права на чтение, запись и выполнение для Пользователя, Но кто является владельцем этого файла? У вас есть эта информация на выходе ls -l (т.е. пользователь andreyex).
  • Файл имеет права на чтение и запись для группы, но не выполняется. Какая группа? У вас есть информация о группе на выходе команды ls -l (т.е. группа andreygroup).
  • Файл имеет только разрешение на чтение для других, то есть всех, у кого есть доступ к системе. Вам не нужно знать, что это за другое, потому что «другое» означает всех пользователей.

Теперь, если вы снова увидите всю команду ls -l, вы можете прочитать права на файлы и права собственности вместе.

-rwxrw-r-- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Файл andreyex.txt принадлежит пользователю andreyex а также andreyex имеет разрешение на чтение, запись и выполнение. Все члены группы andreygroup имеют доступ на чтение и запись к этому файлу, в то время как все остальные имеют доступ только к чтению этого файла.

Примечание

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

Один пользователь может быть членом нескольких групп, но только основная группа пользователя является владельцем группы файла, созданного пользователем. Основная группа пользователя может быть найдена с помощью идентификатора команды –gn . Оставьте имя пользователя пустым, если вы пытаетесь найти свою собственную основную группу.

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

Изменить права доступа к файлам в Linux

Вы можете использовать команду CHMOD для изменения разрешений на файл в Linux.

Общая информация : Разрешения назывались режимом доступа и, следовательно, CHMOD была короткая форма изменения режима доступа.

Существует два способа использования команды chmod:

  • Абсолютный режим
  • Символический режим

Использование chmod в абсолютном режиме

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

  • r (чтение) = 4
  • w (написать) = 2
  • x (выполнить) = 1
  • — (без разрешения) = 0

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

Число разрешение
0
1 -x
2 -w-
3 (т.е. 2 + 1) -wx
4 r-
5 (т.е. 4 + 1) г-х
6 (т.е. 4 + 2) rw-
7 (т.е. 4 + 2 + 1) rwx

Можете ли вы догадаться о разрешении файла в цифрах в файле andreyex.txt в нашем примере? Это пишут, это 754.

Теперь, когда вы знаете, какой номер представляет это разрешение, давайте посмотрим, как изменить разрешение файла с помощью этих знаний.

Предположим, вы хотите изменить разрешение файла на andreyex.txt, чтобы каждый мог читать и писать, но никто не может его выполнить? В этом случае вы можете использовать команду chmod следующим образом:

chmod 666 andreyex.txt

Если вы перечислите andreyex.txt сейчас, вы увидите, что разрешение было изменено.

-rw-rw-rw- 1 andreyex andreyex 457 Aug 18 16:20 andreyex.txt

Использование chmod в символическом режиме

Проблема с абсолютный режим заключается в том, что вы должны всегда предоставлять три номера для всех трех владельцев, даже если вы хотите изменить разрешение для одного владельца.

Здесь вы можете использовать символический режим с помощью команды chmod.

В символическом режиме владельцы обозначаются следующими символами:

  • u = пользовательский пользователь
  • g = владелец группы
  • o = другое
  • a = все (пользователь + группа + прочее)

Символический режим использует математические операторы для выполнения изменений разрешения:

  • + для добавления разрешений
  • — для удаления разрешений
  • = для переопределения существующих разрешений с новым значением

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

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

chmod g+x andreyex.txt

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

-rw-rwxrw- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

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

chmod o-rw+x,u+x andreyex.txt

Полученные разрешения будут такими:

-rwxrwx--x 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Если вы хотите одновременно изменить разрешения для всех трех пользователей, вы можете использовать его следующим образом:

chmod a-x andreyex.txt

Это приведет к удалению разрешения на выполнение для всех.

-rw-rw---- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Теперь, когда вы знаете, как изменить разрешение файла, давайте посмотрим, как изменить права собственности на файл.

Один файл не может входить в несколько групп.

Изменение владельца файла в Linux

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

Вы можете изменить владельца пользователя файла следующим образом:

chown

Если вы хотите изменить пользователя и группу, вы можете использовать команду cown следующим образом:

chown :

Если вы просто хотите изменить группу, вы можете использовать команду chwon таким образом:

chown :

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

chgrp

В нашем примере до сих пор, если вы хотите изменить владельца и группу пользователей на root, вы можете использовать команду chown следующим образом:

sudo chown root:root andreyex.txt

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

-rw-rw---- 1 root root 457 Aug 18 16:20 andreyex.txt

Заметьте, что нам пришлось использовать sudo с chown? Это связано с тем, что здесь задействован root, и чтобы справиться с корнем, вам нужны права суперпользователя.

Бонус Совет: Есть ли приоритет в разрешениях на файлы?

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

----r--rw- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Теперь, если пользователь andreyex пытается прочитать файл с помощью команды cat или less, сможет ли он это сделать? Ответ — нет, потому что у него нет разрешения на чтение.

Но пользователь andreyex является частью группы andreygroup, и у группы есть доступ на чтение. Другой имеет право на чтение и запись. Это должно означать, что каждый (включая пользователя andreyex) может читать и писать файл, не так ли? Неправильно!

В Linux приоритет от пользователя, а затем от группы, а затем и от другого. Система Linux проверяет, кто инициировал этот процесс (в нашем примере cat или less). Если пользователь, инициировавший этот процесс, также является владельцем пользователя, устанавливаются биты прав пользователя.

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

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

Что еще?

Существуют некоторые расширенные разрешения для файлов, такие как установка Sticky bit для предотвращения удаления файлов и т. д.

Надеюсь, вам понравилась статья, и теперь у вас есть лучшее понимание того, как права доступа к файлам работают в Linux.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *