Systemd изменит работу вашего домашнего каталога Linux
Гайд в разделе Linux "Systemd изменит работу вашего домашнего каталога Linux" содержит информацию, советы и подсказки, которые помогут изучить самые важные моменты и тонкости вопроса….
isak55 / Shutterstock
Команда systemd хочет, чтобы вы применили новый способ управления домашними каталогами. Назвать это «новым способом» – значит легко сказать – это настоящий сдвиг парадигмы для Linux. Вот все, что вам нужно знать о systemd-homed, который, скорее всего, появится в ближайшем к вам дистрибутиве Linux.
В спорах нет ничего удивительного
Когда systemd был представлен в 2010 году, сообщество Linux разделилось на три лагеря. Некоторые думали, что это улучшение, а другие думали, что это ошибочная конструкция, не соответствующая философии Unix. А некоторым было наплевать, так или иначе.
Ответная реакция оппонентов была громкой, острой и в некоторых случаях почти фанатичной. Леннарту Поеттерингу, инженеру-программисту Red Hat и соавтору systemd, даже угрожали смертью.
Песни, пропагандирующие насилие над Poettering, были размещены на YouTube, и появились веб-сайты, пытающиеся заставить пользователей Linux бойкотировать systemd. Его со-разработчик, Кей Сиверс, также подвергся критике и оскорблениям, но Poettering, безусловно, понес основную тяжесть этого.
Тем не менее, через восемь месяцев Fedora использовала systemd. К концу 2013 года Arch, Debian, Manjaro и Ubuntu перешли на systemd. Конечно, слава открытого исходного кода в том, что если вам что-то не нравится, вы можете форкнуть исходный код и делать с ним свои собственные дела. Новые дистрибутивы, такие как Devuan, который был ответвлением Debian, были созданы исключительно для того, чтобы избежать использования systemd.
Ваш каталог $ HOME
В структуре каталогов Linux все, что вы делаете, находится в каталоге «/ home». Ваши файлы данных, изображения, музыка и все дерево личных каталогов хранятся в одном каталоге, названном в честь вашей учетной записи.
Настройки ваших приложений хранятся в вашей домашней папке в скрытых «точечных каталогах». Если первый символ имени файла или каталога – точка (.), Он скрыт. Поскольку эти настройки хранятся локально, а не в центральном реестре, и поскольку резервная копия вашего домашнего каталога включает в себя эти скрытые файлы и папки, все ваши настройки также сохраняются.
Когда вы восстанавливаете резервную копию и запускаете приложение, такое как LibreOffice или Thunderbird, оно ищет свой скрытый каталог. Он также находит ваши настройки документа, настройки панели инструментов и любые другие настройки. Thunderbird находит информацию о вашей учетной записи электронной почты и ваш адрес электронной почты. Вам не придется медленно настраивать каждое приложение.
Вы можете использовать ls с параметром -a (all), чтобы увидеть скрытые файлы и каталоги. Сначала введите следующее:
ls
Здесь показаны обычные файлы и каталоги. Затем введите следующее:
ls -a
Теперь вы можете увидеть скрытые файлы и каталоги.

Потому что это самая ценная часть При установке каталог «/ home» обычно монтируется в отдельный раздел или на отдельный жесткий диск. Таким образом, если что-то катастрофическое случится с операционной системой или разделом, в котором она находится, вы можете либо переустановить дистрибутив Linux, либо заменить его на новый. Затем вы можете просто перемонтировать существующий домашний раздел в «/ home».
Данные о вас
В вашем домашнем каталоге хранятся не только ваши данные, но и информация о вас. включая некоторые атрибуты вашей цифровой идентичности. Например, ваш «.ssh »хранит информацию об удаленных соединениях, которые вы установили с другими компьютерами, и любых SSH-ключах, которые вы сгенерировали.
Другие системные атрибуты, такие как имя пользователя вашей учетной записи, пароль и уникальный идентификатор пользователя, сохраняются в другом месте в таких файлах, как «/ etc / passwd» и «/ etc / shadow». Кто угодно может прочитать некоторые из них, но другие могут быть прочитаны только людьми с правами root.
Вот как выглядит содержимое файла «/ etc / passwd»:
cat / etc / passwd

Изменения, размещенные в системе
Целью системных изменений является создание полностью переносимого домашнего каталога с вашими данными и цифровыми идентификаторами Linux, хранящимися в нем. Ваш UID и все другие механизмы идентификации и аутентификации будут храниться только в вашем домашнем каталоге.
Благодаря конструкции «все яйца в одной корзине» домашние каталоги зашифрованы. Они автоматически расшифровываются при входе в систему и снова зашифровываются при выходе из системы. Предпочтительный метод – использовать шифрование диска Linux Unified Key Setup (LUKS). Однако доступны и другие схемы, например fscrypt.
Пользовательская запись JavaScript Object Notation (JSON) хранит всю вашу идентификационную информацию в каталоге под названием «~ / .identity.«Он криптографически подписан ключом, который находится вне вашего контроля.
Домашний каталог каждого человека монтируется на устройстве обратной связи, аналогично тому, как монтируется приложение snap. Это сделано для того, чтобы дерево каталогов в домашнем каталоге выглядело как целостная часть дерева каталогов операционной системы. По умолчанию точка монтирования – «/home/$USER.homedir» («$ USER» заменяется именем учетной записи пользователя).
Каковы преимущества?
Поскольку ваш домашний каталог становится безопасной инкапсуляцией всех ваших данных, у вас даже может быть домашний каталог на съемном устройстве. Например, вы можете использовать USB-накопитель для перемещения его между вашей рабочей и домашней машинами или любым другим компьютером, подключенным к системе.
Это то, что Poettering имел в виду под «полностью переносимым домашним каталогом. Он сказал, что даже если вы не хотите перемещать домашний каталог на портативном устройстве, это упростит обновление и миграцию и повысит безопасность.
Он удаляет то, что он называет «вспомогательными базами данных», которые содержат фрагменты важной информации о вас, которая, по мнению Poettering, должна быть централизованной. Файлы «/ etc / passwd» и «/ etc / shadow» содержат информацию для аутентификации и хешированные пароли. Однако они также содержат такую информацию, как ваша оболочка по умолчанию, поле General Electric Comprehensive Operating Supervisor (GECOS).
Поеттеринг сказал, что эти метаданные следует рационализировать и хранить в значимых группах в записи JSON каждого человека в их доме.
Управление новым $ HOME
Служба, размещенная в systemd, управляется с помощью нового инструмента командной строки homectl.
Есть варианты для создания пользователей и домашних каталогов, а также для установки пределов хранилища для каждого пользователя. Вы также можете установить пароль, заблокировать кого-либо из его учетной записи или полностью удалить учетную запись. Пользователи могут быть проверены, и их пользовательские записи JSON также могут быть прочитаны.
Часовые пояса и другая информация на основе местоположения также может быть установлена для каждого пользователя. Вы можете указать оболочку по умолчанию и даже установить переменные среды, чтобы они находились в определенном состоянии при каждом входе в систему.
Если вы посмотрите в каталог «/ home», вы увидите управляемые записи с привязкой к системе, которые выглядят следующим образом, с добавлением «.homedir» к имени пользователя:
/home/dave.homedir
Помните, это просто точка монтирования. Фактическое расположение зашифрованного домашнего каталога находится в другом месте.
Ограничения и проблемы
systemd-homed предназначен только для использования в пользовательских учетных записях людей. Он не может обрабатывать учетные записи пользователей с UID менее 1000. Другими словами, root, daemon, bin и т. Д. Не могут управляться по новой схеме. Всегда будут нужны стандартные способы администрирования пользователей. Поэтому systemd-homed не является глобальным решением.
Существует известная проблема-22, которую необходимо решить. Как мы упоминали ранее, домашний каталог человека расшифровывается, когда он или она входит в систему. Но если кто-то получает удаленный доступ к компьютеру через SSH, на ключи SSH в домашнем каталоге нельзя ссылаться, потому что домашний каталог все еще зашифрован, пока этот человек не войдет в систему. Конечно, нужны ключи SSH для аутентификации, прежде чем он или она может войти в систему.
Это была признанная проблема командой systemd-homed, но мы не смогли найти никаких ссылок на ее исправление. Мы уверены, что они найдут решение, если бы они этого не сделали, было бы потрясающе глупо.
Допустим, кто-то переносит свой домашний каталог на новый компьютер. Если UID уже используется на новой машине кем-то другим, ему автоматически будет назначен новый UID. Конечно, всем его файлам нужно будет переназначить право собственности на новый UID.
В настоящее время это обрабатывается рекурсивным автоматическим применением команды chown -R. Вероятно, в будущем, когда будет разработана более элегантная схема, это будет рассматриваться по-другому. Этот деспотичный подход не учитывает демонов и процессов, которые работают от имени других пользователей.
Когда это происходит?
Это сейчас происходит. Изменения кода были представлены 20 января 2020 г. и включены в сборку 245 systemd, которая поставлялась с Ubuntu 20.04 в апреле 2020 г.
Чтобы проверить, какая у вас версия, введите следующее:
systemd –version

Однако команды homectl еще нет. Ubuntu 20.04 использует традиционный каталог / home и не использует systemd-homed.
Конечно, отдельные дистрибутивы сами решают, когда они будут включать и поддерживать systemd-homed и homectl.
Так что никому не нужно переходить в режим вил и горящих факелов. Поскольку стандартные методы управления пользователями и домашними каталогами останутся прежними, у всех нас будет выбор.