Что такое цель/etc/shadow и теневых файлов кэша в операционной системе Linux?

Какова цель/etc/shadow файла в операционной системе Linux? Кроме того, это - то же для клиентов SUSE? Существует один теневой файл кэша, сохраняется, что такое цель этого?

9
задан 06.02.2011, 16:37

3 ответа

С начала Unix и операционные системы стиля Unix (включая Linux) всегда имеют сохраненные пароли как криптографические хеши (1). Эти хеши были первоначально сохранены в /etc/passwd, но этот файл должен был быть читаемым миром для предоставления доступа к информации доступной для других целей - даже простое ls -l потребности читать /etc/passwd для преобразования числового идентификатора пользователя владельца каждого файла в их имя пользователя для дисплея. Однако наличие хешированных паролей в читаемом миром файле позволило злонамеренным пользователям легко получать те хеши и пытаться генерировать применимые пароли (2) для учетных записей других пользователей.

Для предотвращения этого хешированные пароли были в конечном счете перемещены в файл, читаемый только корнем (и иногда привилегированная группа администраторов), /etc/shadow. Это скрывает хеши от обычных пользователей системы при сохранении их доступными для целей аутентификации пользователя.

Примечания:

  1. Педантичный, я знаю, но сохраненные пароли не шифруются. Они хешируются с помощью криптографически безопасного (по крайней мере, по состоянию на время, которое это было записано), алгоритм хеширования. Основные различия, релевантные вот, - то, что хеши являются фиксированной длиной (длина зашифрованного текста варьируется на основе длины текста, который был зашифрован), и необратимый (зашифрованный текст может быть дешифрован; хешированный текст не может).

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

16
ответ дан 07.12.2019, 13:08

/etc/shadow файл был создан из соображений безопасности и содержит зашифрованный пароль каждого пользователя.

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

Но затем люди поняли, что это было проблемой безопасности. Кто-либо с достаточным количеством времени мог сделать то, что назвало атаку перебором, программно генерировав зашифрованные пароли для каждого возможного пароля. Если взломщик сделал это, на самом деле не пытаясь зарегистрироваться на пути telnet или ssh, система не могла знать, что подвергалась нападению.

Таким образом, зашифрованный пароль был перемещен в недавно созданный /etc/shadow, который читаем только корнем.

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

Посмотрите man 5 shadow (веб-версия) для полного изложения формата файла.


Я не могу сказать, является ли это тем же для SUSE, не зная, с какой версией SUSE Вы имеете дело. Например, Ваша система SUSE может использовать Шифр, а не MD5.

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

Посмотрите, что проблемы перемещают теневой файл с SuSE 9.3 на Сервер Ubuntu x86_64, например.

Чтобы попытаться понять это, открыться /etc/shadow и посмотрите, запускается ли поле зашифрованного пароля с $1$ или $2$. Если это содержит $1$, затем это - MD5, и совместимый с большинством других дистрибутивов. Если это содержит $2$, затем это - вероятно, Шифр согласно теневым файлам Шифра на Debian.

При использовании Ubuntu первым результатом поиска Google для шифра Ubuntu могло бы быть хорошее стартовое место.

6
ответ дан 07.12.2019, 13:08

Пользователи перечислены в /etc/passwd файл. Этот файл содержит многих информация, используемая системой не только, чтобы позволить пользователям входить в систему.

Каждая строка соответствует пользовательской записи, и различные поля разделяются двоеточиями. Зарегистрированным первым является вход в систему, он сопровождается соответствующим паролем.

Зашифрованные пароли раньше хранились в этом поле. Однако /etc/passwd файл должен быть читаемым всеми в системе, таким образом, шифрование не предотвращает от атак перебором, как это было сказано @Mikel. Решение состояло в том, чтобы переместить эти зашифрованные пароли в читаемый файл только для корня: /etc/shadow.

Таким образом, /etc/shadow содержит зашифрованные пароли пользователей системы. Система знает, что должна проверить на пароли в этом файле когда поля пароля в /etc/passwd содержите x один (значение "пересекают к/etc/shadow"),

3
ответ дан 07.12.2019, 13:08

Теги

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