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

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

Не чужі суперечки

Коли systemd було представлено в 2010 році, спільнота Linux розділилася на три табори. Деякі вважали, що це покращення, а інші вважали, що це був недолік дизайну, який не дотримувався філософія Unix. І декому було все одно, так чи інакше.

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

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

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

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

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

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

  Як записати GIF-файли Screencast на Linux

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

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

ls

Це показує вам звичайні файли та каталоги. Далі введіть наступне:

ls -a

Тепер ви можете побачити приховані файли та каталоги.

Оскільки це найцінніша частина інсталяції, зазвичай каталог “/home” монтується у власний розділ або на окремий жорсткий диск. Таким чином, якщо з операційною системою або розділом, на якому вона знаходиться, станеться щось катастрофічне, ви можете переінсталювати свій дистрибутив Linux або перейти на новий. Потім ви можете просто перемонтувати існуючий домашній розділ на «/home».

Дані про вас

Ваш домашній каталог не просто зберігає ваші дані; він також зберігає інформацію про вас. включаючи деякі атрибути вашої цифрової особистості. Наприклад, ваш каталог “.ssh” зберігає інформацію про віддалені з’єднання, які ви встановили з іншими комп’ютерами, і будь-які згенеровані вами ключі SSH.

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

Ось як виглядає вміст файлу «/etc/passwd»:

cat /etc/passwd

Зміни, розміщені в системі systemd

Метою змін systemd-homed є забезпечення повністю переносимого домашнього каталогу з вашими даними та цифровими ідентифікаторами Linux, що зберігаються в ньому. Ваш UID та всі інші механізми ідентифікації та аутентифікації зберігатимуться лише у вашому домашньому каталозі.

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

  Як створити тему Hyper Terminal на Linux

А Нотація об’єктів JavaScript Запис користувача (JSON) зберігає всю вашу ідентифікаційну інформацію в каталозі під назвою «~/.identity». Він криптографічно підписаний ключем, який ви не контролюєте.

Домашній каталог кожної людини монтується на шлейфовому пристрої, подібно до того, як монтується програма швидкого доступу. Це означає, що дерево каталогів у домашньому каталозі з’являється як цілісна частина дерева каталогів операційної системи. За замовчуванням точка монтування має значення “/home/$USER.homedir” (“$USER” замінюється на ім’я облікового запису особи).

Які переваги?

Оскільки домашній каталог стає безпечною інкапсуляцією всіх ваших даних, ви навіть можете мати свій домашній каталог на знімному пристрої. Наприклад, ви можете використовувати USB-накопичувач, щоб переміщувати його між робочою та домашньою машиною або будь-яким іншим комп’ютером із системою Systemd.

Це те, що Потерінг мав на увазі під «повністю портативним домашнім каталогом». Він сказав, що навіть якщо ви не хочете переміщувати свій домашній каталог на портативному пристрої, це спростить оновлення та міграцію та підвищить безпеку.

Він видаляє те, що він називає «базами даних коляски», які містять фрагменти важливої ​​інформації про вас, яку, на думку Поттерінга, слід централізовано. Файли «/etc/passwd» і «/etc/shadow» містять інформацію про автентифікацію та хешовані паролі. Однак вони також містять інформацію, як-от ваша оболонка за замовчуванням, the Генеральний експлуатаційний інспектор (GECOS) поле.

Про це сказав Потерінг метадані повинні бути раціоналізовані та зберігатися у значущих групах у записі JSON кожної особи в її домашньому каталозі.

Керування своїм новим $HOME

Служба systemd-homed керується через новий homectl інструмент командного рядка.

Є варіанти створення користувачів і домашніх каталогів, а також встановлення лімітів зберігання для кожного користувача. Ви також можете встановити пароль, заблокувати когось із його облікового запису або повністю видалити обліковий запис. Користувачів можна перевіряти, а також можна прочитати їхні записи користувачів JSON.

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

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

/home/dave.homedir

Пам’ятайте, це лише точка кріплення. Розташування фактичного зашифрованого домашнього каталогу знаходиться в іншому місці.

  Як поділитися терміналом Linux онлайн за допомогою Teleconsole

Обмеження та проблеми

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.

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