В 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 защищает пароли
- Хеширование и засолка: Пароли никогда не хранятся в виде обычного текста. Вместо этого они хэшируются и солятся, чтобы предотвратить прямое извлечение.
- Доступ только для root: Доступ к таким файлам, как /etc/shadow, ограничен только для root.
- Подключаемые модули аутентификации (PAM): Аутентификация в Linux управляется PAM, который обеспечивает соблюдение политик безопасности паролей.
Заключение
Linux надежно хранит учетные данные пользователей в системных файлах, таких как /etc/passwd и /etc/shadow, обеспечивая зашифрованный и ограниченный доступ. Понимание этих механизмов хранения данных необходимо для обеспечения безопасности системы и управления пользователями.