Intereting Posts
Нужен ли мне графический процессор NVidia локально, если я только синхронизирую проекты для создания удаленных сборок по целям? Где UNIX ищет информацию для входа? например, где он находит, что делать? Поделитесь беспроводной картой с Arch Linux на VirtualBox После клонирования Fedora 14 установите на другую машину, встроенный сетевой адаптер рассматривается как eth1 вместо eth0. Зачем? Как перейти на компакт-диск? * ОШИБКА * время ожидания ожидания включения панели как объединить два файла на основе одного столбца Powerstop tunables: что он делает? Что означает out.absolute.dir в ant? Установленный Win7 после Ubuntu, Win удалил загрузку Ubuntu Самая высокая версия glibc, работающая с фактическим оборудованием 386 Ошибка: разрешение отклонено на ключ 'fs.file-nr' Как установить режим видео в linux с помощью kms / drm? Почему я получаю непоследовательные значения IP от icanhazip.com или curlmyip.com? Изменяется ли индекс при переименовании или перемещении файла?

Почему исполняемые файлы разделяемых библиотек?

Почему у почти всех разделяемых библиотек в /usr/lib/ установлен бит разрешения исполняемого файла? Я не вижу смысла использовать их. Некоторым удается подключить некоторую форму main функции, чтобы напечатать короткую записку об авторских правах и версии, но многие из них не делают этого и segfault при исполнении.

Итак, какой смысл устанавливать этот x ? Должны ли все библиотечные пакеты делать это? Что произойдет, если у меня будет dlopen() общая библиотека с 0644 ?

    В HP-UX разделяемые библиотеки отображаются в память с помощью mmap (), а все страницы памяти в системе имеют биты защиты, которые связаны с механизмами защиты страницы памяти ядра и процессора. Чтобы выполнить содержимое любой страницы памяти в системе, на этой странице должен быть установлен PROT_EXEC – полезная функция для предотвращения эксплойтов выполнения данных.

    Вызов mmap () использует бит разрешения в файле, который он собирается сопоставить, чтобы определить бит защиты отображаемых страниц памяти, которые должны содержать его: rwx -> PROT_READ | PROT_WRITE | PROT_EXEC (из sys / mman.h). поэтому для того, чтобы общая библиотека могла использоваться в HP-UX, файл, содержащий общую библиотеку, должен иметь разрешения на выполнение, чтобы гарантировать, что отображаемая библиотека также имеет разрешение на выполнение.

    Общая библиотека с режимом 644 в системе HP-UX вызовет сброс базы.

    Неиспользуемые общие объекты работают нормально, но библиотеки, помеченные как исполняемые, также могут быть запущены как автономные программы.

    Итак, какой смысл устанавливать этот х?

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

    Должны ли все библиотечные пакеты делать это?

    нет

    Что произойдет, если у меня будет dlopen () общая библиотека с полномочиями 0644?

    Вы получите новый дескриптор разделяемого объекта (пока файл читается и т. Д.) … бит exec не влияет на этот


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


    пример вывода, только для справки:

     $ /lib/i386-linux-gnu/libc.so.6 GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10) stable release version 2.15, by Roland McGrath et al. Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.6.3. Compiled on a Linux 3.2.14 system on 2012-04-19. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B libc ABIs: UNIQUE IFUNC For bug reporting instructions, please see: <http://www.debian.org/Bugs/>.