Файл shadow

Материал из Wiki Open book
Перейти к: навигация, поиск

Оглавление | Предыдущая страница | Следующая страница


В файле /etc/shadow хранится информация о паролях и учетных записях пользователей.

Внимание! Файл должен быть доступен на чтение и запись только суперпользователю.

В файле на одного пользователя отводится одна строка. В строке есть девять полей, отделяемых друг от друга двоеточием:

  • Логин пользователя.
  • Хеш пароля пользователя.
  • Дата последнего изменения пароля пользователя.
  • Сколько дней после изменения пароля, пользователь не имеет право изменять свой пароль.
  • Сколько дней действителен пароль пользователя.
  • За сколько дней до устаревания пароля, при входе пользователя в систему, выводится предупреждение о смене пароля.
  • Сколько дней после окончания срока действия пароля, пользователь может входить в систему. При входе сразу будет запускаться программа смены пароля.
  • Дата окончания действия учетной записи пользователя.
  • Девятое поле не используется и должно быть пустым.

Первое поле необходимо для связи двух файлов: /etc/passwd и /etc/shadow.

Во втором поле хранится хеш пароля пользователя. Например, там может быть такая строка:

$2a$10$ziHh/qOFqWRcLk3HH60rweIptT3TX0tBoZAgoilLZGz0C.12eX5bu

Алгоритм хеширования не предусматривает обратного преобразования. То есть из последовательности символов нельзя получить пароль. Но, его можно подобрать. Из предполагаемого пароля получают хеш и сравнивают с хеш, который хранится в файле shadow. Поэтому файл shadow должен быть доступен только суперпользователю. Для подбора пароля можно воспользоваться программами Crack и John the ripper. Администратор сам должен регулярно использовать эти программы для обнаружения слабых паролей пользователей.

Подобрать пароль можно и не имея его хеш. Это можно сделать "методом тыка", просто перебирая все возможные пароли при входе в систему. Поэтому пароли должны быть сложными, длинной не менее восьми символов и не содержать имена жен, детей, собак и т.д. Желательно, что бы пароль состоял из какой либо абракадабры, иначе не смотря на длину, его легко могут подобрать по словарю. Причем не надо надеяться но то, что нет словарей русских слов. Кроме того, существуют словари русского транслита и словари русских слов набранных на английской клавиатуре.

С другой стороны, сложные пароли пользователями не запоминаются и очень часто мониторы оклеены стикерами с паролями. Существует замечательный метод, который позволяет делать сложные пароли легко запоминаемые пользователями. При этом ни одного стикера с паролем на мониторе Вы гарантировано не увидите. Это так называемый метод шокирующих паролей. Всем известно, что кроме основного русского языка существует второй русский язык. На втором русском в приличном обществе не общаются, но все прекрасно его знают. Богатство этого языка просто впечатляет. Теперь вспомните пример с кассой. Баба Глаша гарантированно забудет любой сложный пароль. Но если вы спросите ее: "Баба Глаша, скажи на втором русском все что ты думаешь о своем начальстве". Она Вам такое скажет! Так завернет! Установите эту фразу в качестве пароля. Для невозможности подбора по словарю (и такие словари встречаются в интернет), разделяйте слова в фразе каким либо символом: плюсом, пробелом и т.д. Что Вы в результате получите: этот пароль пользователь никогда не забудет и ни одного стикера на мониторе!

Если в поле пароля Вы видите любой символ, например, * или !. Это значит, что перед нами так называемый фиктивный пользователь. Он никогда не сможет войти в систему. Ведь какой бы пароль он ни ввел, из этого пароля после хеширования никогда на получится один символ. Такие пользователи предназначены для того, чтобы с их правами выполнялись программы.

Если вам необходимо временно блокировать учетную запись пользователя, так что бы этот пользователь не мог входить в систему. Достаточно перед хешем пароля поставить любой символ. Например восклицательный знак:

!$2a$10$ziHh/qOFqWRcLk3HH60rweIptT3TX0tBoZAgoilLZGz0C.12eX5bu

Теперь, какой бы пароль пользователь не ввел, в результате хеширования пароля никогда не получится строка, начинающаяся с символа !. Для разблокирования пароля достаточно удалит восклицательный знак, у пользователя восстанавливается его старый пароль. При этом ни до блокировки, ни после разблокирования мы не знали пароль пользователя. Кстати, такой механизм блокировки использует программа passwd, но о ней мы поговорим позже.

Дата последнего изменения пароля — это количество дней, прошедших после 1 Января 1970 года. Теперь попробуйте вычислить сколько дней прошло после этой замечательной даты. Слава Богу, что никто не заставляет этот файл редактировать руками. Все изменения в файл обычно вносятся при помощи специальных программ.

Назначение остальных полей должно быть понятно из их названия.

Инструменты
    
Личные инструменты