2.9.9.3 Пароли пользователей
Файл /etc/passwd
Имя пользователя
Идентификатор пользователя
Группы пользователей
Дополнительная информация
Домашний каталог пользователя
Командная оболочка
Защита паролей пользователей
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Архитектура: x86_64
Файл /etc/passwd
Файл /etc/passwd является основным источником информации о правах пользователя операционной системы, содержит в текстовом формате список пользовательских учётных записей (аккаунтов).
Записи в файле представлены в следующем формате:
login : password : UID : GID : GECOS : home : shell
Каждая строка файла описывает одного пользователя и содержит семь полей, разделённых двоеточиями:
login— зарегистрированное в системе имя пользователя;password— хеш пароля;UID— идентификатор пользователя;GID— идентификатор группы по умолчанию;GECOS— информационное поле GECOS;home— начальный (домашний) каталог;shell— регистрационная оболочка.
Вы можете подробнее ознакомиться с информацией о файле /etc/passwd, просмотрев наши обучающие видео:
на RuTube — Создание и управление пользователями;
в Яндекс.Дзен — Создание и управление пользователями;
в VK Видео — Создание и управление пользователями.
На наших каналах вы также сможете найти много другой полезной информации.
Основным назначением /etc/passwd является сопоставление логина и идентификатора пользователя (UID). Изначально поле пароля содержало хеш пароля и использовалось для аутентификации. Однако в связи с ростом вычислительных мощностей процессоров появилась серьёзная угроза применения простого перебора для взлома пароля. Поэтому все пароли были перенесены в специальные файлы, такие как /etc/shadow. Эти файлы недоступны для чтения обычным пользователям. Такой подход называется механизмом скрытых паролей.
Имя пользователя
Зарегистрированные в системе имена пользователей должны быть уникальными и представлять собой строки длиной не более 32 символов (любые, кроме двоеточия и символа новой строки). По сути, имя пользователя — это его короткий и легко запоминаемый псевдоним, который используется при входе в систему и часто включается в адреса электронной почты.
Идентификатор пользователя
Идентификатор пользователя — это число от 0 до 232-1. Пользователь с идентификатором «0» (обычно root) называется суперпользователем и имеет право на выполнение любых операций в системе. Принято соглашение о выделении «специальным» пользователям (bin, daemon), назначение которых — только запуск определённых программ, идентификаторов со значениями менее 100 или, в некоторых дистрибутивах Linux, менее 500.
Группы пользователей
Пользователь может принадлежать к одной или нескольким группам, которые используются для указания прав более чем одного пользователя на тот или иной файл. Максимальное количество групп, в которых может состоять один пользователь, разное в разных вариантах системы.
Список групп с их участниками задаётся в файле /etc/group. В файле /etc/passwd указывается идентификатор группы по умолчанию.
Всем файлам, созданным пользователем после регистрации в системе, будет автоматически присвоен этот номер группы (исключение — если для каталога, в котором создаётся файл, в правах установлен бит SGID, то будет присвоена такая же группа, как у самого каталога).
Файл /etc/group содержит записи обо всех группах в системе. Записи в файле представлены в следующем формате:
<имя_группы> : password : GID : <список_пользователей>
Каждая его строка содержит:
<имя_группы>— символьное имя группы;password— пароль группы (устаревшее поле, сейчас не используется), обычно указываетсяx;GID— идентификатор группы;<список_пользователей>— список имён участников, разделённых запятыми.
Например:
bin : x : 1 : root,bin,daemon
Запись указывает, что группа bin имеет GID=1, а входят в неё пользователи root, bin и daemon.
Дополнительная информация
Поле GECOS хранит вспомогательную информацию о пользователе (номер телефона, адрес, полное имя пользователя и т. д.). Оно не имеет чётко определённого синтаксиса.
Тем не менее, демон fingerd предполагает, что в нём содержатся следующие элементы, разделённые запятыми:
- полное имя;
- адрес офиса или домашний адрес;
- рабочий телефон;
- домашний телефон.
С помощью утилиты chfn можно изменять эту информацию, а с помощью finger — узнать, например, полное имя любого пользователя в системе (или даже на другом компьютере сети).
Пример записи в поле GECOS:
tester : x : 210 : 8 : Edward Chernenko,Marx Street 10,4554391,5454221 : /home/ed : /bin/bash
Домашний каталог пользователя
После входа в систему пользователь оказывается в своём домашнем каталоге. Исторически сложилось так, что домашний каталог пользователя root называется /root, а остальные имеют вид /home/<имя_пользователя>.
Если на момент входа в систему домашний каталог отсутствует, то система выдаёт сообщение об ошибке и отказывается допустить пользователя к командной строке. Такое поведение НЕ характерно для GNU/Linux; в большинстве дистрибутивов этой ОС просто выводится предупреждение, после чего пользователь попадает в корневой каталог «/». Это можно изменить посредством установки параметра DEFAULT_HOME в файле /etc/login.defs в значение «no».
Следует отметить, что при использовании графического интерфейса (KDE, GNOME) пользователь не увидит предупреждения или сообщения об ошибке, но просто будет выведен из системы безо всяких объяснений (так как оконный менеджер не сможет выполнить запись в нужный каталог, такой как ~/.gnome).
Командная оболочка
В поле регистрационной оболочки задаётся shell, то есть интерпретатор командной строки. Здесь может быть указана любая программа, и пользователь может сам выбирать для себя наиболее подходящую при помощи команды chsh. Тем не менее, некоторые системы в целях безопасности требуют, чтобы суперпользователь явно разрешил использование приложения в качестве интерпретатора командной строки. Для этого используется специальный файл /etc/shells, содержащий список «допустимых» оболочек.
Защита паролей пользователей
Пароли пользователей хранятся в файле /etc/shadow в зашифрованном виде. По умолчанию в РЕД ОС пароли шифруются с помощью алгоритма yescrypt. Хеши паролей записываются в файл /etc/shadow после префикса $y$.
В РЕД ОС 7.3 при создании пользователя в процессе установки системы пароли шифруются с помощью алгоритма SHA-512. Хеши паролей записываются в файл /etc/shadow после префикса $6$.
Перед хешированием к паролю добавляются случайные символы — «salt» (соль, от англ. add salt to something — сделать что-либо более интересным; в русскоязычных источниках иногда используется термин «затравка»). Salt также приписывается к началу полученного хеша. Благодаря salt при простом просмотре файла нельзя обнаружить пользователей с одинаковыми паролями.
Для защиты паролей также могут быть использованы следующие методы хеширования (являются безопасными и рекомендуются к использованию):
sha512crypt (
$6$) – метод хеширования паролей, основанный на алгоритме SHA-512, использует соль для защиты от атак с применением предварительно вычисленных таблиц (rainbow tables);scrypt (
$7$) – алгоритм хеширования паролей, который ориентирован на защиту от атак с использованием специализированного оборудования;yescrypt (
$y$) – современный алгоритм хеширования паролей, является улучшенной версией scrypt;gost_yescrypt (
$gy$) – адаптация алгоритма yescrypt с учетом российских стандартов криптографической защиты информации (ГОСТ), сочетает в себе преимущества yescrypt и соответствие требованиям ГОСТ.
Информацию обо всех доступных методах хеширования можно просмотреть с помощью утилиты mkpasswd. Утилита позволяет вычислять хеш для пароля с указанными значениями.
Для установки утилиты в ОС выполните команду (потребуются права администратора):
sudo dnf install mkpasswd
Для просмотра всех доступных методов хеширования используйте команду:
mkpasswd --method=HELP
Обратите внимание, что методы хеширования bcrypt, sha256crypt, sunmd5, md5crypt, bsdicrypt, descrypt, nt являются устаревшими и не рекомендуются для использования! В случае использования в работе приведенных методов хеширования администратор ОС несет полную ответственность за возможную компрометацию данных!
Информацию о переключении на метод хеширования, отличный от метода по умолчанию, см. в нашей инструкции «Задание хешей паролей в соответствии с ГОСТ Р 34.11-2012» в п. «Задание хешей паролей в системах, использующих authselect».
Для указания метода хеширования библиотеке PAM, осуществляющей проверку корректности введенного пользователем пароля при авторизации, необходимо передать соответствующие наименования:
для yescrypt —
yescrypt;- для gost-yescrypt —
gost_yescrypt;
для sha512crypt —
sha512;для остальных методов — см. справку
man pam_unix.
В файле /etc/shadow кроме имен пользователей и хешей паролей также хранятся:
- дата последнего изменения пароля;
- через сколько дней можно будет поменять пароль;
- через сколько дней пароль устареет;
- за сколько дней до того, как пароль устареет, начать напоминать о необходимости смены пароля;
- через сколько дней после того, как пароль устареет, заблокировать учётную запись пользователя;
- дата, при достижении которой учётная запись блокируется;
- зарезервированное поле.
Даты обозначаются как число дней с 1 января 1970 года (начало эпохи UNIX).
Регулярная смена паролей — это обязательная административная мера, призванная сделать учётные записи более защищёнными.
Дата последнего изменения: 21.05.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.