в этой лекции мы обсудим, как система linux выполняет аутентификацию,
есть два файла, представляющих для нас особый интерес, и
т. д. пароль и т. д. shadow файл и т. д. паролей содержит основную информацию о каждой учетной записи пользователя
в системе, давайте посмотрим содержимое файла i ' m открывая его, используя меньше,
каждая строка файла представляет одну учетную запись типа обычного пользователя или системного пользователя,
и в каждой строке есть семь полей, давайте возьмем эти поля по одному,
первое поле - это имя пользователя для входа в систему второе поле в начале эпохи unix,
использовавшейся для хранения зашифрованного пароля, в настоящее время он содержит букву x, чтобы обозначить,
что пароль был назначен, но был сохранен в другом файле теневой файл, если это второе
поле пусто, пользователю не нужно вводить пароль для входа в третьем поле - идентификатор пользователя;
положительное целое число, присвоенное пользователю, за которым следует идентификатор группы в четвертом поле;
пятое поле - комментарий; иногда его оставляют пустым; следующее поле - использование. r домашний каталог
и, наконец, последнее поле - это оболочка по умолчанию, обычно установленная на bin bash, если вместо bash вы видите,
что нет входа в систему или false, это означает, что это системный пользователь, которому не разрешено входить в систему,
которая была в формате пароля и т. д.
Я выхожу из файла, нажимая на q, давайте продолжим и посмотрим на формат etc shadow
это файл, в котором хранятся фактические пароли пользователей в зашифрованном формате, на самом деле есть
хэш пароля с дополнительными свойства, относящиеся к паролям пользователя,
такие как даты истечения срока действия пароля, файл паролей
и т. д. читается по словам, а это означает, что любой пользователь может его прочитать, но теневой файл этот файл доступен для чтения только
учетной записи root, давайте глубже посмотрим на содержимое теневого файла
каждая строка файла содержит 9 полей, разделенных запятыми, первое поле - это имя пользователя, и
именно так строка в теневом файле соединяется с соответствующей строкой в ​​файле паролей,
второе поле представляет пароль, вся строка между этими двумя столбцами
это пароль, затем идут семь полей, связанных с датами истечения срока действия пароля,
такими как минимальный и максимальный возраст пароля последнего изменения пароля и так далее, я не буду
углубляться в это, но если вам интересно, вы можете найти полное описание из этих полей
на странице руководства теневого файла man shadow вы найдете здесь полное описание каждого поля,
давайте вернемся к теневому файлу, если поле пароля содержит звездочку или восклицательный знак,
пользователь не сможет войти в система, использующая аутентификацию по паролю, другие методы входа в систему,
такие как аутентификация на основе ключей или переключение на пользователя, все еще разрешены, это случай
root в последней версии kali linux, давайте глубже посмотрим на поле пароля.
это выбранное поле обычно формат пароля в этом случае установлен тип доллара в долларах, соль в шесть
долларов и хэш в долларах.
Тип 6 в этом случае является используемым алгоритмом криптографического хеширования и может иметь следующие
значения: 1 означает s md5 2a означает blowfish 2y означает x blowfish 5 означает sha 200 и 6 в этом случае означает sha
512, затем идет соль этой части, а затем хеш пароля и соль вместе,
эта часть это хеш, вычисленный с использованием в данном случае sha 512 который является чрезвычайно сильным
алгоритмом, позвольте мне рассказать вам несколько слов о соли, в этом поле в этом примере соль в сочетании
с паролем добавляется в процесс хеширования, чтобы обеспечить уникальность выходного хеша, или,
другими словами, тот же пароль даст различные хеши из-за этой случайной соли, они смягчают
атаки на пароли, такие как радужные таблицы, соль генерируется случайным образом для каждого пароля, но это не
секрет, как пароль, если с помощью хеша злоумышленник может найти пароль в виде открытого текста,
все другие похожие пароли других пользователи по-прежнему в безопасности, потому что их хэш отличается,
чтобы было понятно, позвольте мне показать вам пример, когда я выхожу из теневого файла,
нажимая на очередь, и я создам две учетные записи пользователей y будет иметь тот же пароль, что
и я создаю первого пользователя с именем user1, а затем устанавливаю его пароль для проверки пользователя добавить user1
пользователь был создан давайте установим пароль x для проверки пароля user1, и я набираю test два раза
давайте создадим второго пользователя с именем user2 с тем же самым тестом пароля используйте красный пользовательский инструмент
пользователя 2, и я набираю тест два раза,
теперь давайте проверим хэши в теневом файле, я распечатываю последние 10 строк,
это строки, относящиеся к пользователям, которых у меня есть только что создан, и мы замечаем, что, хотя у
обоих пользователей один и тот же пароль, сохраненный хэш отличается, он уникален, потому что он
вычислил хеш, используя как общий пароль, так и соль, которая теперь уникальна для каждого пользователя,
если хакеру удается найти пароль первого пользователя, имеющего хэш, хакер не знает,
что у второго пользователя такой же пароль, потому что в файле есть еще один хэш,
последнее, что я хочу вам сказать, это то, что эти файлы, пароль и тень не должны редактироваться
вручную, если вы знайте, что вы делаете, всегда используйте комментарий, который предназначен для этой цели
, теперь все, что вы знаете, где хранятся пароли в системе Linux, я продолжу и
покажу вам в следующих лекциях, как организованы группы Linux и как управлять пользователями в группах