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

5 февраля 2021 |

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

The /home directory highlighted in a graphical Linux file manager. 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.

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

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

Tags:

Напишите пару строк: