На самом деле, / etc / shadow был создан, чтобы позволить отойти от общедоступного списка имен пользователей и паролей.
Держитесь там, это будет небольшой урок истории, прежде чем мы перейдем к фактическому ответу. Если вас не волнует история, просто прокрутите немного вниз.
В старые времена Unix-подобные ОС, включая Linux, обычно хранили пароли в / etc / passwd. Этот файл был доступен для чтения всем и остается, потому что он содержит информацию, позволяющую сопоставлять, например, числовые идентификаторы пользователей и имена пользователей. Эта информация очень полезна даже для обычных пользователей в совершенно законных целях, поэтому удобство чтения файлового мира очень полезно.
Уже тогда люди понимали, что иметь пароли в виде простого текста в файле в хорошо известном месте, которое любой, кто мог войти, мог свободно читать, было плохой идеей. Так что в некотором смысле пароли были хешированы. Это старый «криптованный» механизм хеширования паролей, который почти никогда не используется в современных системах, но часто поддерживается в устаревших целях.
Посмотрите на / etc / passwd в вашей системе. Видите это второе поле, которое говорит x
везде? Используется для хранения хешированного пароля для рассматриваемой учетной записи.
Проблема заключалась в том, что люди могли загружать / etc / passwd или даже не загружать его и работать над взломом паролей. Это не было большой проблемой, в то время как компьютеры не были особенно мощными (Клиффорд Столл, в «Яйце с кукушкой») , насколько я помню, дает время для хеширования одного пароля в системе класса IBM PC в середине 1980-х годов примерно на секунду. ), но это стало проблемой по мере увеличения вычислительной мощности. В какой-то момент, с приличным списком слов, взломать эти пароли стало слишком легко. По техническим причинам эта схема также не может поддерживать пароли длиннее восьми байт.
Для решения этой проблемы были сделаны две вещи:
- Переход к более сильным хеш-функциям. Старый crypt () изжил свой срок полезного использования, и были разработаны более современные схемы, которые были бы как на будущее, так и в вычислительном отношении.
- Переместите хешированные пароли в файл, который никто не может прочитать. Таким образом, даже если хэш-функция пароля оказалась слабее, чем ожидалось, или если у кого-то был слабый пароль для начала, у злоумышленника было еще одно препятствие, чтобы получить доступ к значениям хеша для начала. Это больше не было бесплатным для всех.
Этот файл / etc / shadow.
Программное обеспечение, которое работает с / etc / shadow, как правило, очень маленькое, сильно сфокусировано и имеет тенденцию к получению дополнительной проверки в обзорах из-за потенциальных проблем. Он также работает со специальными разрешениями, которые позволяют ему читать и изменять / etc / shadow, в то же время обычные пользователи не могут просматривать этот файл.
Итак, у вас есть: разрешения на / etc / shadow являются ограничивающими (хотя, как уже отмечалось, не такими ограничительными, как вы заявляете), потому что вся цель этого файла - ограничить доступ к конфиденциальным данным.
Предполагается, что хеш пароля надежный, но если ваш пароль входит в список 500 самых популярных паролей в Интернете , любой, у кого есть доступ к хешу, все равно сможет быстро найти пароль. Защита хеша предотвращает эту простую атаку и поднимает планку для успешной атаки от простого просмотра до того, что требуется либо уже быть системным администратором на хосте, либо сначала пройти атаку по повышению привилегий. Особенно в правильно управляемой многопользовательской системе, обе эти задачи значительно сложнее, чем просто просмотр файла, доступного для чтения.
/etc/shadow
являются600
?