У системах Linux паролі користувачів надійно зберігаються у зашифрованих форматах у спеціальних системних файлах і базах даних автентифікації. Ці облікові дані відіграють важливу роль в управлінні контролем доступу і гарантують, що лише авторизовані користувачі можуть взаємодіяти з системними ресурсами. Наприклад, стандартні паролі користувачів зазвичай хешуються і зберігаються у файлі /etc/shadow, доступ до якого мають лише привілейовані процеси. Аналогічно, такі сервіси, як OpenSSH, покладаються на ці збережені хеші для перевірки ідентичності користувачів під час сеансів віддаленого входу.

Для хостинг-провайдерів, таких як AvaHost, розуміння того, як і де Linux зберігає ці облікові дані, має важливе значення для підтримки безпечного середовища на VPS і виділених серверах. Незалежно від того, чи ви налаштовуєте політики passwd для декількох клієнтів, чи забезпечуєте безпечний доступ за допомогою sshd_config, правильна робота зі сховищем паролів є ключем до запобігання несанкціонованому доступу та захисту даних, розміщених на хостингу.

1. Файл /etc/passwd (інформація про користувача)

Файл /etc/passwd містить список усіх користувачів системи, а також основні дані облікових записів.

Приклад запису в /etc/passwd:

username:x:1001:1001:User Name:/home/username:/bin/bash

Пояснення полів:

  • username: Ім’я користувача для входу в систему.
  • x: Заповнювач, який вказує на те, що пароль зберігається в окремому файлі.
  • 1001:1001: Ідентифікатор користувача (UID) та ідентифікатор групи (GID).
  • Ім’я користувача: Повне ім’я або опис користувача.
  • /home/username: Домашній каталог користувача.
  • /bin/bash: Командна оболонка за замовчуванням, призначена користувачеві.

2. Файл /etc/shadow (зашифровані паролі)

Linux зберігає фактичні хеші паролів у файлі /etc/shadow, до якого має доступ лише користувач root.

Приклад запису у /etc/shadow:

username:$6$abc123$XYZhashedpassword:18528:0:99999:7:::

Пояснення полів:

  • $6$: Вказує на алгоритм шифрування (в даному випадку SHA-512).
  • abc123: Сіль, яка використовується для хешування пароля.
  • XYZhashedpassword: Фактичний хешований пароль.
  • 18528: Дата останньої зміни пароля.
  • 0:99999:7: Інформація про старіння пароля (мінімальний і максимальний термін дії пароля).

Перевірка алгоритму хешування пароля:

Щоб побачити використаний алгоритм хешування, запустіть:

cat /etc/shadow | grep username

3. Файл /etc/group (інформація про групу)

Файл /etc/group містить інформацію про групи користувачів та членство у них.

Приклад запису у файлі /etc/group:

developers:x:1002:username1,username2

4. Каталог /var/lib/AccountsService/ (Облікові записи користувачів GUI)

У деяких дистрибутивах Linux зберігаються параметри облікових записів користувачів для входу до графічного інтерфейсу:

/var/lib/AccountsService/users/

Ці файли містять метадані, такі як імена екранів і налаштування сеансів, але не зберігають паролі.

5. Команди керування паролями

Змінити пароль користувача:

passwd username

Переглянути інформацію про застарілість пароля:

chage -l username

Змушувати користувачів змінювати пароль при наступному вході:

passwd --expire username

6. Як Linux захищає паролі

  • Хешування та соління: Паролі ніколи не зберігаються у вигляді простого тексту. Замість цього вони хешуються і соляться, щоб запобігти прямому відновленню.
  • Доступ тільки для суперкористувача: Доступ до таких файлів, як /etc/shadow, обмежено лише для суперкористувача.
  • Модулі автентифікації, що підключаються (PAM): Автентифікацією у Linux керує PAM, який забезпечує дотримання політик безпеки паролів.

Висновок

Linux надійно зберігає облікові дані користувачів у системних файлах, таких як /etc/passwd та /etc/shadow, забезпечуючи зашифрований та обмежений доступ. Розуміння цих механізмів зберігання є важливим для безпеки системи та управління користувачами.