Одним из ключевых элементов безопасности любой операционной системы является защита пользовательских данных, включая способы хранения и обработки паролей. В системах Linux данный вопрос урегулирован с помощью нескольких конфигурационных файлов и служб. Стоит рассмотреть, где и как именно хранятся пароли пользователей в Linux, а также какие меры безопасности применяются для защиты этих данных.
Основные файлы для хранения учётных данных
/etc/passwd
Файл является одним из старейших и наиболее известных файлов, содержащих информацию о пользователях. В нем перечислены все аккаунты с базовой информацией: имя пользователя, идентификатор пользователя (UID), идентификатор группы (GID), полное имя пользователя (GECOS), домашний каталог и командная оболочка. Изначально в «passwd» хранились и зашифрованные пароли, но в современных системах это уже не так по причинам безопасности.
/etc/shadow
В современных дистрибутивах Linux зашифрованные пароли пользователей хранятся отдельно в файле /etc/shadow. Этот файл недоступен для обычных пользователей, его содержимое может просматривать только суперпользователь (root).
Каждая запись в «shadow» содержит имя пользователя и зашифрованный пароль вместе с дополнительной информацией, такой как дата последней смены пароля, число дней до разрешения изменения пароля, число дней до истечения срока действия пароля и другие параметры, связанные с политикой безопасности.
Формат хранения паролей
Зашифрованные пароли в файле /etc/shadow хранятся в формате, который включает в себя алгоритм шифрования, «соль» и собственно хэш пароля. Соль — это случайная строка, которая добавляется к паролю перед его шифрованием, что помогает предотвратить атаки по словарю и использование готовых таблиц хэшей (так называемых rainbow tables).
Защита файлов учётных записей
Доступ к файлам /etc/passwd и /etc/shadow строго регулируется системными правами. Хотя /etc/passwd обычно доступен для чтения всеми пользователями системы (поскольку он содержит нечувствительные данные), /etc/shadow защищён от несанкционированного доступа. Только пользователи с правами суперпользователя могут просматривать или изменять этот файл.
Смена и восстановление паролей
Процесс смены пароля пользователя происходит через утилиты, такие как passwd, которые взаимодействуют непосредственно с файлом /etc/shadow. При смене пароля утилита автоматически заботится о правильном шифровании нового пароля и его записи в файл.
Заключение
Понимание того, где и как хранятся пароли в системах Linux, имеет важное значение для обеспечения безопасности системы. Раздельное хранение общедоступной информации и зашифрованных паролей, использование соли и надёжных алгоритмов шифрования — все это меры, направленные на минимизацию рисков компрометации данных пользователей.