Назад | Перейти на главную страницу

Для чего нужны права доступа к исполняемым файлам в Linux?

Я никогда этого не понимал, потому что, если у вас есть доступ для чтения файла, разве это не значит, что вы сможете скопировать его в другое место, тем самым позволяя выполнить его в любом случае?

Что мне не хватает?

Флаг Executable указывает ядру, что данные следует прочитать, а затем запустить. Это реализовано с помощью другого вызова выполнение что-то и чтение что-то. Для скомпилированных программ вполне возможно иметь доступ только для выполнения и не иметь доступа для чтения; вы не можете даже "cp" их в другом месте. Для интерпретируемых элементов, таких как сценарии оболочки, чтение необходимо для выполнения.

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

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

Разве это не означает, что вы сможете скопировать его где-нибудь еще, что позволит вам в любом случае выполнить?

Нет, это не так.

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

  • ограниченная оболочка, которая явно запрещает выполнение
  • файловая система, смонтированная с noexec вариант

Некоторые возможные причины:

  • Он защищает файл от случайного запуска.
  • Таким образом, очевидно, какие файлы являются исполняемыми (в Windows вам нужно проверить реестр на список расширений исполняемых файлов, чтобы знать это)
  • Он защищает вас от некоторых уязвимостей (злоумышленникам нужен не только способ поместить файл в вашу систему и каким-то образом его запустить, им также нужен способ изменить его разрешения).
  • Если на единственных дисках, которые пользователь может записать, есть опция umask / mount, которая «удаляет» бит выполнения, они не могут скопировать его в другое место и сделать его исполняемым (по крайней мере, не на этой машине, и вам, возможно, придется взять другие меры предосторожности тоже)

Наверное, есть и другие причины ...