В 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, обеспечивая зашифрованный и ограниченный доступ. Понимание этих механизмов хранения данных необходимо для обеспечения безопасности системы и управления пользователями.