zaLinux.ru

Systemd изменит работу вашего домашнего каталога Linux


Команда systemd хочет, чтобы вы применили новый способ управления домашними каталогами. Назвать это «новым способом» — значит легко сказать — это настоящий сдвиг парадигмы для Linux. В этой статье мы собрали всё, что вам нужно знать о systemd-homed, которая, скорее всего, уже присутствует в вашем дистрибутиве Linux.

Глобальные изменения всегда вызывают споры

Когда в 2010 году был представлен systemd, сообщество Linux разделилось на три лагеря. Некоторые думали, что это улучшение, а другие думали, что это неудачное устройство системы, не соответствующее философии Unix. А некоторым было всё равно какой вариант выбрать.

Ответная реакция противников была громкой, острой и в некоторых случаях почти фанатичной. Леннарту Поеттерингу, инженеру-программисту Red Hat и со-разработчику systemd, даже угрожали смертью.

Песни, пропагандирующие насилие над Poettering, были размещены на YouTube, и появились веб-сайты, которые пытались заставить пользователей Linux бойкотировать systemd. Его со-разработчик, Кей Сиверс, также подвергался критике и оскорблениям, но Poettering, безусловно, понёс основную тяжесть этого.

Тем не менее, в течение восьми месяцев Fedora использовала systemd. К концу 2013 года Arch, Debian, Manjaro и Ubuntu перешли на systemd. Конечно, слава открытого исходного кода в том, что если вам что-то не нравится, вы можете форкнуть исходный код и делать с ним свои собственные дела. Новые дистрибутивы, такие как Devuan, который был ответвлением Debian, были созданы исключительно для того, чтобы избежать использования systemd.

Связанная статья: Как использовать Systemctl для управления службами Systemd и юнитами

Ваш каталог $HOME

В структуре каталогов Linux всё, что вы делаете, находится в каталоге «/home». Ваши файлы данных, изображения, музыка и всё дерево личных каталогов хранятся в одном каталоге, названном в честь вашей учётной записи.

Настройки ваших приложений хранятся в вашей домашней папке в скрытых каталогах, имя которых начинается с точки. Если первый символ имени файла или каталога — точка (.), Он считается скрытым. Поскольку эти настройки хранятся локально, а не в центральном реестре, и поскольку резервная копия вашего домашнего каталога включает в себя эти скрытые файлы и папки, все ваши настройки также будут скопированы.

Когда вы восстанавливаете резервную копию и запускаете приложение, такое как LibreOffice или Thunderbird, оно ищет свой скрытый каталог. Оно также находит ваши настройки документов, настройки панели инструментов и любые другие настройки. Thunderbird находит информацию о вашей учётной записи электронной почты и вашу электронную почту. Вам не придётся медленно настраивать каждое приложение.

Вы можете использовать ls с параметром -a (all, всё), чтобы увидеть скрытые файлы и каталоги. Сначала введите следующее:

ls

Это показывает вам обычные файлы и каталоги. Затем введите следующее:

ls -a

Теперь вы можете увидеть в дополнение скрытые файлы и каталоги.

Поскольку это наиболее важная часть установки, каталог «/home» обычно монтируется в отдельный раздел или на отдельный жёсткий диск. Таким образом, если что-то катастрофическое случится с операционной системой или разделом, на котором она находится, вы можете либо переустановить дистрибутив Linux, либо заменить его на новый. Затем вы можете просто перемонтировать существующий домашний раздел в «/home».

Связанная статья: Структура директорий Linux. Важные файлы Linux

Данные о вас

Ваш домашний каталог не просто хранит ваши данные; он также хранит информацию о вас, включая некоторые атрибуты вашей цифровой идентичности. Например, в вашем каталоге «.ssh» хранится информация об удалённых подключениях, которые вы установили с другими компьютерами, и любых созданных вами SSH-ключах.

Другие системные атрибуты, такие как имя пользователя вашей учётной записи, пароль и уникальный идентификатор пользователя, хранятся в других местах в файлах, таких как «/etc/passwd» и «/etc/shadow». Кто угодно может прочитать некоторые из них, но другие могут быть прочитаны только людьми с правами root.

Вот как выглядит содержимое файла «/etc/passwd»:

cat /etc/passwd

Связанная статья: Как изменить информацию о пользователе с помощью chfn и usermod в Linux


Изменения, которые несёт systemd-homed

Целью изменений systemd-homed является создание полностью переносимого домашнего каталога с вашими данными и цифровыми идентификаторами Linux, хранящимися в нём. Ваш UID и все другие механизмы идентификации и аутентификации будут храниться только в вашем домашнем каталоге.

Благодаря конструкции «все яйца в одной корзине» домашние каталоги станут зашифрованными. Они автоматически расшифровываются при входе в систему и снова шифруются при выходе из системы. Предпочтительный метод — использовать шифрование диска Linux Unified Key Setup (LUKS). Однако есть и другие схемы, например fscrypt.

Запись пользователя JavaScript Object Notation (JSON) хранит всю вашу идентификационную информацию в каталоге с именем «~/.identity». Он подписан криптографически с помощью ключа, который находится вне вашего контроля.


Домашний каталог каждого человека монтируется на петлевом устройстве, аналогично тому, как монтируется приложение snap. Это сделано для того, чтобы дерево каталогов в домашнем каталоге выглядело как целостная часть дерева каталогов операционной системы. По умолчанию точка монтирования - «/home/$USER.homedirr» («$USER» заменяется именем учётной записи пользователя).

Каковы преимущества?

Поскольку ваш домашний каталог становится безопасной инкапсуляцией всех ваших данных, у вас даже может быть домашний каталог на съёмном устройстве. Например, вы можете использовать USB-накопитель для перемещения его между вашей рабочей и домашней машинами или любым другим компьютером, подключённым к системе.

Это то, что Poettering имел в виду под «полностью переносимым домашним каталогом». Он сказал, что даже если вы не хотите перемещать домашний каталог на портативном устройстве, это упростит обновление и миграцию и повысит безопасность.

Такой подход удаляет то, что он называет «вспомогательными базами данных», которые содержат фрагменты важной информации о вас, которую, по мнению Poettering, следует централизовать. Файлы «/etc/passwd» и «/etc/shadow» содержат информацию для аутентификации и хешированные пароли. Однако они также содержат такую информацию, как ваша оболочка по умолчанию, поле General Electric Comprehensive Operating Supervisor (GECOS).

Поеттеринг сказал, что эти метаданные следует рационализировать и хранить в значимых группах в записи JSON каждого человека в их домашнем каталоге.

Управление вашим новым $HOME

Служба systemd-home управляется с помощью нового инструмента командной строки homectl.

Есть варианты для создания пользователей и домашних каталогов, а также для установки ограничений хранилища для каждого пользователя. Вы также можете установить пароль, заблокировать кого-либо из его учётной записи или полностью удалить учётную запись. Пользователи могут быть проверены, и их пользовательские записи JSON также могут быть прочитаны.


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

Если вы посмотрите в каталог «/home», вы увидите управляемые записи systemd-homed, размещённые в системе, которые выглядят следующим образом, с добавлением «.homedir» к имени пользователя:

/home/mial.homedir

Помните, что это просто точка монтирования. Местоположение фактического зашифрованного домашнего каталога находится в другом месте.

Ограничения и проблемы

systemd-homed предназначен только для использования в учётных записях пользователей. Он не может обрабатывать учётные записи пользователей с UID менее 1000. Другими словами, root, daemon, bin и т. д. не могут управляться с использованием новой схемы. Всегда будут нужны стандартные способы администрирования пользователей. Поэтому systemd-homed не является глобальным решением.

Есть известная Уловка-22, которую необходимо решить. Как мы упоминали ранее, домашний каталог человека расшифровывается всякий раз, когда он или она входит в систему. Но если кто-то получает удалённый доступ к компьютеру через SSH, на ключи SSH в домашнем каталоге нельзя ссылаться, потому что домашний каталог все ещё зашифрован до того момента, когда человек входит в систему. Конечно, для аутентификации необходимы ключи SSH, прежде чем он или она сможет войти в систему.

Это признанная командой systemd-homed проблема, но мы не смогли найти никаких ссылок на её решение. Мы уверены, что они найдут решение; если бы они этого не сделали, это стало бы зрелищным провалом.

Допустим, кто-то переносит свой домашний каталог на новую машину. Если UID уже используется на новом компьютере кем-то другим, ему автоматически будет назначен новый UID. Конечно, всем его файлам придётся переназначить право собственности на новый UID.

В настоящее время это обрабатывается рекурсивным автоматическим применением команды chown -R. Вероятно, в будущем, когда будет разработана более элегантная схема и это будет решаться по-другому. Этот кастыльный подход не принимает во внимание демонов и процессов, которые работают от имени других пользователей.

Связанная статья: Создание и настройка ключей OpenSSH

Когда это будет?

Это происходит сейчас. Изменения кода были представлены 20 января 2020 года и включены в сборку 245 systemd, которая уже присутствует на большинстве современных дистрибутивах.

Чтобы узнать, какая у вас версия, на производных Debian (Kali Linux, Linux Mint, Ubuntu) введите следующее:

systemd --version

А на производных Arch Linux нужно ввести:

systemctl --version

Однако команда homectl пока присутствует не во всех дистрибутивах. Эта команда уже есть на производных Arch Linux, но всё ещё отсутствует на производных Debian.

Популярные дистрибутивы на момент написания используют каталог /home и не используют systemd-homed.

Конечно, отдельные дистрибутивы сами решают, когда они будут включать и поддерживать systemd-homed и homectl.

Так что никому не нужно переходить в режим работы с вилами и горящими факелами, чтобы ополчиться на инженеров и программистов Linux. Поскольку стандартные методы управления пользователями и домашними каталогами останутся, у всех по-прежнему будет выбор.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *