OS Linux

Что такое FAKEROOT

Что такое FAKEROOT

До недавнего времени в Debian при сборке пакета многим приходилось использовать fakeroot, чтобы процесс установки пакета мог продолжаться без ошибок, даже если пакет должен запускаться от имени суперпользователя (root). Те, кто еще не сталкивался с этой программой, погут подумать, что это потенциальная уязвимость, так как она повышает права до суперпользователя.

На самом деле fakeroot всего-лишь эмулирует сессию суперпользователя за счет перехватов системных вызовов и не может предоставить вам удаление, запись, чтение файлов, к которым у вас нет доступа. Получается, у fakeroot нет достаточных привелегий? Программы, запущеные с помощью Fakeroot от текущего пользователя, создает видимость работы от имени суперпользователя из-за библиотеки подгружаемой через LD_PRELOAD и перехвата системных вызовов chown, chmod, stat и т.д., но изменение файлов и директорий на которые нет прав не проиходит.

Опции

 -l

Указывается альтернативная библиотека.

 --faked binary

Альтернативный двоичный файл для использования в качестве поддельного.

-s

Сохраняет среду fakeroot в файл при выходе для последующего запуска.

-i

Загрузка ранее сохраненной среды fakeroot.

 -u

 Реальные права вместо фейковых root:root.

 -b

Минимальный номер дескриптора файла.

 

Пример

После выполнения команды с повышенными привелегиями whoami делает запрос на id пользователя, ядро системы ему отвечает 0, whoami говорит вам, что вы root.

sudo whoami
root

В случае использования fakeroot whoami cделает запрос на id пользователя, запрос перехватывается оболочкой программы и она же отвечает 0, whoami говорит вам, что вы root. Но для ядра ваш id как был, к примеру, 1000 так и остался.

fakeroot whoami
root

Итог

Fakeroot помогает нам запускать в оболочке процессы установки программного обеспечения и смотреть их поведение без запуска от имени root. Таким образом, вы можете запустить сборку пакета, не имея на это прав, получая при этом те же результаты, которые вы получили бы, если бы вы действительно работали от имени root. Использование fakeroot безопаснее: система останется неизменна и процесс установки не сможет повредить вашу операционную систему.

Навигация

SUDO и SU в Linux

« Предыдущая статья

Пакетные менеджеры Linux

Следующая статья »