Разрешена ли строка комментария в /etc/passwd

Суть использования солт-значения заключается в том, что результат будет различным для каждого солт-значения. Использование одной и той же соли для каждого пароля сводит на нет преимущество наличия соли.

Что касается того, как функция проверки пароля узнает, какая соль была использована, соль сохраняется как часть хэша пароля. Первые реализации использовали первые два символа для соли, за которыми следовала хэш. Теперь формат хэша пароля представляет собой несколько полей, разделенных знаком $. В первом поле указывается используемый алгоритм, затем необязательные параметры, значение соли и сам хэш.

В вашем случае вывод содержит ваше значение соли,22446688

$6$ 22446688 $...

Во второй команде соль представляет собой случайное значение,nLtu32Q.5ZtRwK9x

$6$ nLtu32Q.5ZtRwK9x $...

Проверка пароля получает полную строку, включая алгоритм и соль, чтобы можно было проверить пароль.

0
18.06.2020, 03:34
3 ответа

Каждая запись в /etc/passwdописывает одну учетную запись пользователя, строки комментариев не поддерживаются.

Формат файла см. в passwd(5)(man 5 passwd).

2
18.03.2021, 23:26

В /etc/passwdразрешены только пользовательские записи, все остальное считается искаженным и приводит к сбою некоторых инструментов, зависящих от этого файла.

TLDR :Нет

3
18.03.2021, 23:26

Подпрограммы библиотеки C musl для обработки базы данных учетных записей, getpwent()и др., не допускают никаких комментариев в файлах /etc/passwdили /etc/shadow. Код библиотеки просто не рассматривает какой-либо символ в качестве вводного комментария. (Он также не распознает строку +как флаг YP и вообще не разрешает использование каких-либо специальных маркеров.)

Если у вас есть какие-либо программы, созданные для библиотеки musl C, не пытайтесь добавлять комментарии к этим файлам.

Библиотека GNU C и библиотека C FreeBSD, однако, обе разрешают комментарии.

Вернее:

Код библиотеки GNU C, предоставляющий filesисходные коды всех баз данных NSS(см. руководство nsswitch.conf), разрешает комментарии строк с #в качестве первого символа, отличного от -пробела. Таким образом, комментарии могут содержать не только /etc/passwdи /etc/shadow.

В BSD файл /etc/passwdне является базой данных учетных записей. В BSD база данных учетных записей не является базой данных плоских файлов,но в файле Berkeley DB (два, на самом деле, /etc/pwd.dbи /etc/spwd.db), которые по природе файлов Berkeley DB не допускают комментариев. /etc/master.passwdпредставляет собой скомпилированную в базу данных учетных записей (s )с помощью инструмента pwd_mkdb.

Файл /etc/passwdна BSD является фиктивным файлом обратной -совместимости, созданным pwd_mkdb, фактически не используемым для поиска подпрограммами библиотеки C и предназначенным только для людей с сценариями оболочки, использующими прямой awk /etc/passwdи например, а не лучшая команда getent passwd(, которая обертывает библиотеку C для сценариев оболочки ).

Во FreeBSD и ее производных/etc/master.passwdможет содержать комментарии , а инструмент pwd_mkdbкопирует комментарии из /etc/master.passwdв /etc/passwd, не помещая их в основные файлы Berkeley DB. При желании #могут предшествовать только символы TAB и SPC, что не совсем совпадает с библиотекой GNU C (, которая допускает использование любого пробельного символа, удовлетворяющего isspace()в локали процесс с использованием подпрограмм библиотеки GNU C, что, вероятно, очень неясно это -это -иногда --комментарий -иногда --секрет -суперпользователь -запись об ошибке, ожидающая своего появления ).

Команды pwd_mkdbOpenBSD и NetBSD, напротив, не допускают комментариев в /etc/master.passwdи не вставляют комментарии в фиктивный /etc/passwd.

Таким образом, вы можете использовать #комментарии, которым предшествуют TAB и SPC, в /etc/master.passwdна FreeBSD; и #комментарии, которым предшествуют isspace()символы текущей локали в /etc/passwd, /etc/shadowи целом ряде других источников NSS в операционных системах на базе Linux -, если все (релевантны )программы связаны с библиотекой GNU C.

3
18.03.2021, 23:26

Теги

Похожие вопросы