Разрешения для /etc/shadow равны 600, что означает, что он не доступен для чтения никому, кроме root.
Однако, поскольку все пароли внутри него не сохраняются в ясном тексте, а как хеш (это означает, что это невозможно вычислить исходный пароль из хэша), почему он не может быть прочитан всеми?
На самом деле, была создана / etc / shadow, чтобы можно было отказаться от общедоступного списка имен пользователей и паролей.
Повесьте туда, это будет немного урок истории, прежде чем мы получите фактический ответ. Если вы не заботитесь об истории, просто прокрутите вниз.
В старые времена Unix-подобные ОС, включая Linux, как правило, сохраняли пароли в / etc / passwd. Этот файл был доступен для чтения и по-прежнему доступен, поскольку он содержит информацию, позволяющую сопоставлять, например, числовые идентификаторы пользователей и имена пользователей. Эта информация очень полезна даже для обычных пользователей в совершенно законных целях, поэтому наличие читаемого файла было очень полезным для удобства использования.
Даже тогда люди поняли, что наличие паролей в текстовом виде в файле в известном месте, где любой, кто мог бы войти в систему, мог свободно читать, это была плохая идея. Поэтому пароли были хэшированы, в некотором смысле. Это старый механизм шифрования паролей «crypt», который почти никогда не используется в современных системах, но часто поддерживается для устаревших целей.
Взгляните на / etc / passwd в вашей системе. См. Это второе поле, в котором говорится x повсюду? Он использовал хэшированный пароль для рассматриваемой учетной записи.
Проблема заключалась в том, что люди могли загружать / etc / passwd или даже не загружать их, а также работать над взломом паролей. Это была не большая проблема, в то время как компьютеры не были особенно мощными (Clifford Stoll, в вдали от , дает, насколько я помню, время для хэширования одного пароля в системе класса IBM PC в середине -1980s примерно через секунду), но это стало проблемой по мере увеличения вычислительной мощности. В какой-то момент, с приличным списком слов, взломать эти пароли стало слишком легко. По техническим причинам эта схема также не могла поддерживать пароли длиной более восьми байтов.
Для решения этой проблемы были выполнены две вещи:
Переход к более сильным хеш-функциям. Старый crypt () изжил свою полезную жизнь, и были разработаны более современные схемы, которые были бы как в будущем, так и в вычислительной степени более сильными. Переместите хешированные пароли в файл, который не был доступен для чтения кем угодно. Таким образом, даже если функция хэша паролей оказалась слабее, чем ожидалось, или если у кого-то был слабый пароль для начала, было другое препятствие для злоумышленника получить доступ к значениям хэша для начала. Он больше не был свободен для всех.Этот файл является /etc/shadow.
Программное обеспечение, которое работает с / etc / shadow, как правило, очень мало, сильно сфокусировано и, как правило, получает некоторые дополнительные проверки в обзорах из-за потенциал для проблем. Он также работает со специальными разрешениями, что позволяет читать и изменять / etc / shadow, не позволяя обычным пользователям не смотреть на этот файл.
Итак, у вас есть: Разрешения на / etc / shadow являются ограничивающими (хотя, как уже указывалось, не столь ограничительными, как вы заявляете), поскольку вся цель этого файла заключается в ограничении доступа к конфиденциальным данным.
Предполагается, что хеш-пароль должен быть сильным, но если ваш пароль находится на , в то время как обычные пользователи не могут просмотреть этот файл. Списки , любой, у кого есть доступ к хэшу, все равно сможет быстро найти пароль. Защита хеша предотвращает эту простую атаку и повышает планку успешной атаки от простого подглядывания, требуя, чтобы один из них либо был системным администратором на хосте, либо сначала прошел эскалацию привилегий. Особенно в правильно управляемой многопользовательской системе, обе из них значительно сложнее, чем просто смотреть на читаемый мир файл.
Кто вам сказал, что
$ls -l /etc/shadow
-rw-r----- 1 root shadow 1407 mei 18 10:05 /etc/shadow
- 640. Простой ответ: разрешения в Linux воспринимаются серьезно. Нет причин для «других» делать что-либо с /etc/shadow. И нет никаких оснований для того, чтобы группа «тень» писала ему.
Почему разрешение для файла / etc / shadow установлено равным 600?
Однако, поскольку все пароли внутри него не сохраняются в ясном тексте, но как хэши (что означает, что невозможно вычислить исходный пароль из хэша), почему он не может быть прочитан всеми?
Поскольку нет никакой причины так.
Хеши односторонние. Предоставление кому-то доступа к чтению позволяет использовать сценарий для злоупотребления этим способом: просто перечислите любое слово, которое вы можете себе представить, и создайте хеш. В какой-то момент он может совпадать с паролем. Может потребоваться некоторое время.
Важный фон: /etc/shadow существует исключительно для хранения скрытых хэшей паролей. В ранние дни Unix хеши паролей хранились в /etc/passwd. По мере того, как компьютеры стали более мощными, сетевые соединения стали более устойчивыми, а безопасность более изощренными, люди поняли, что хранение хэшей паролей, читаемых по словам, вызывает проблемы. (Я не буду подробно описывать эксплойты, об этом уже есть достаточно.)
Но /etc/passwd не может быть защищен от чтения: он используется всеми видами программ для сопоставления числовых идентификаторов пользователей к именам пользователей, а также искать домашние каталоги, оболочки по умолчанию, полное имя пользователя (и номер офиса и т. д.) - проверить man finger). Поэтому чувствительная часть, хэши паролей, была перенесена на /etc/shadow, а остальная часть осталась такой, какая была. Вот почему /etc/passwd, despide name, содержит все, кроме пароля (hashed).