Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

3 года назад
Открыть в
Просматривал список необычных утилит Linux, и зацепился взгляд за броское название — fakeroot. Сразу стало интересно, что это за фейковый рут. Впервые услышал это название. Причём утилита старая, есть в базовых репах. Немного почитал про неё, но не сразу въехал, что это в итоге такое и зачем надо. Покажу сразу на примере. После установки: # apt install fakeroot Можно запустить: # fakeroot И вы как будто сделали sudo su. Появилось приветствие в консоли root: root@T480:~# Создаём новый файл и проверяем его права: # touch file.txt # ls -la file.txt -rw-r--r-- 1 root root 0 Jul 26 00:55 file.txt Как будто мы работаем под root, создавая файлы с соответствующими правами. При этом, если выйти из fakeroot и проверить права этого файла, окажется, что они как у обычного пользователя, под которым мы подключены: # exit # ls -la file.txt -rw-r--r-- 1 zerox zerox 0 Jul 26 00:55 file.txt Fakeroot перехватывает системные вызовы и возвращает их программе, как будто они выполняются под root. Это может быть полезно только в одном случае. Программа из-за нехватки прав завершает работу с ошибкой. Но при этом нам бы хотелось, чтобы она продолжила свою работу, так как отсутствие некоторых прав для нас некритично. Поясню на простом примере. Вы делаете бэкап каких-то каталогов и там попадаются файлы, к которым у вас вообще нет прав, даже на чтение. Программа, которая делает бэкап, может остановиться с ошибкой, ругнувшись на отсутствие прав. В таком случае её можно запустить в fakeroot. Она будет считать, что имеет доступ ко всему, что ей надо, хотя реально она не прочитает те файлы, к которым у неё нет доступа, но не узнает об этом. Я, кстати, с этой ситуацией неоднократно сталкивался. Только мне не нужно было пропускать эти файлы, а наоборот — дать права на чтение, чтобы в архив они в итоге попали. Я специально отслеживал такие моменты. Ну а кому-то нужно было их пропускать. В итоге появилась утилита fakeroot. ⇨ Описание FakeRoot на сайте Debian #linux #terminal