Управление ИД пользователей для экономии ресурсов процессора с помощью команды mkpasswd
В системе с большим числом пользователей можно ускорить вход в систему и сэкономить ресурсы процессора за счет применения индексированного файла /etc/passwd для поиска идентификаторов пользователей. В этом случае обычный файл /etc/passwd сохраняется в системе, но не применяется для обработки запросов на вход в систему.
Для создания индексированного файла применяется команда mkpasswd. Если индексированная версия файла устарела, то при входе в систему поиск идентификатора пользователя выполняется путем последовательного перебора записей обычного файла /etc/passwd. Для выполнения такого поиска требуется значительно больше ресурсов процессора.
Для создания индексированных версий файла паролей применяется команда mkpasswd -f. Эта команда создает индексные версии файлов /etc/passwd, /etc/security/passwd и /etc/security/lastlog . В результате создаются файлы /etc/passwd.nm.idx, /etc/passwd.id.idx, /etc/security/passwd.idx и /etc/security/lastlog.idx. Обратите внимание, что создание таких файлов позволяет значительно повысить производительность приложений, для запуска которых требуется ввести зашифрованный пароль (например, процедуры входа в систему и других программ, запрашивающих у пользователя пароль).
Приложение, не запрашивающее у пользователя зашифрованный пароль, будет выполняться быстрее, если для проверки имени и пароля пользователя будет применяться функция _getpwent() вместо getpwent(), _getpwnam_shadow(name,0) вместо getpwnam(name) и _getpwuid_shadow(uid,0) вместо getpwuid(uid). Это связано с тем, что указанные функции не выполняют поиск в файле /etc/security/passwd.