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

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

Не новичок в спорах

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

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

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

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

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

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

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

  Как установить Nmap в Linux

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

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

ls

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

ls -a

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

ls в окне терминала.

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

Данные о вас

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

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

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

cat /etc/passwd

cat / etc / passwd в окне терминала.

Изменения, размещенные в системе

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

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

  Как установить Geary 3.32 в Linux

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

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

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

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

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

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

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

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

Служба systemd-homed управляется новым homectl. инструмент командной строки.

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

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

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

/home/dave.homedir

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

  Как установить Upterm в Linux

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

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

systemd --version в окне терминала.

Однако команды homectl пока нет. Ubuntu 20.04 использует традиционный каталог / home и не использует systemd-homed.

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

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