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

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/ (Облікові записи користувачів графічного інтерфейсу)

У деяких дистрибутивах 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, забезпечуючи зашифрований та обмежений доступ. Розуміння цих механізмів зберігання є важливим для безпеки системи та управління користувачами.