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