Что делает “выполнить” разрешение, делают?

Я потрясен, что я все еще не понимаю, "Выполняют" разрешение в Linux.

Существует три разрешения - чтение, пишут и выполняются. Я понимаю, что читает и пишут буквально, но что действительно выполняется, делают точно?

Скажем, я имею example.php с выполняют разрешение. С чем я могу сделать example.php?

31
задан 15.02.2013, 21:51

3 ответа

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

Некоторые сценарии в Linux являются самостоятельно исполняемым файлом, Вы будете часто видеть строку наверху как

#!/bin/bash или

#!/bin/python

Та строка говорит ядру, что файл может быть выполнен путем вызова соответствующей программы (и не просто текст). Затем можно просто запустить скрипт как

./сценарий

вместо того, чтобы иметь необходимость сделать

Python./сценарий

32
ответ дан 07.12.2019, 09:13

"выполнитесь" позволяет пользователю выполнять исполняемые файлы. Для каталогов это - допуск для ввода каталога с помощью команды CD.

17
ответ дан 07.12.2019, 09:13

Это для запущенных приложений от GUI или командной строки. Для "нормального" использования php (через веб-сервер), который ничего не изменяет. Точно разговор, это зависит от конфигурации, но в наиболее распространенных случаях Вам не нужно +x разрешение позволить загружать Вашу php веб-страницу через браузер.

Для выполнения из командной строки Вам нужно:

  • добавить #!/usr/bin/php в начале сценария
  • добавьте +x разрешение
  • Ваш сценарий должен быть в Вашем исполняемом пути поиска (переменная среды $PATH), или необходимо указать каталог, что это находится в перед названием сценария. Это могло быть абсолютным путем, как /etc/xdg/foo или /home/fred/bar, или относительный каталог, как dir1/prog1 или ./prog2.
2
ответ дан 07.12.2019, 09:13

Теги

Похожие вопросы