Linux shadow файл где находится

Linux shadow файл где находится

Традиционные Unix системы хранят данные о пользователях вместе с зашифрованным паролем в текстовом файле « /etc/passwd ». Поскольку этот файл используется многими инструментальными средствами (типа «ls») чтобы отобразить владельца файла и другие подобные сведения, файл должен быть открыт на чтение для всех, что, конечно, дает отличный шанс хакерам.

Другой метод хранения информации, тот, который я всегда использую, затенение паролей. Как и раньше, есть файл /etc/passwd с данными о пользователях. Однако, вместо паролей ставится символ “x”, а пароли хранятся отдельно в файле « /etc/shadow », в котором хранятся зашифрованные пароли и некоторая дополнительная информация о паролях. Файл /etc/shadow доступен для чтения только root, что повышает защиту.

В Red Hat Linux установка пакета Shadow Password Suite, ответственного за теневые пароли, проста. Наберите как root:

С теневыми (shadow) паролями файл « /etc/passwd » хранит сведения о пользователях в виде:

Каждое поле в записи отделено символом “:”:

Username, до 8 символов. Регистр важен, обычно пишут в нижнем регистре.

Символ “x” в поле пароля. Пароли хранятся в файле « /etc/shadow ».

Числовой user id. Назначается скриптом « adduser ». Unix использует данное значение и значение группы для определения кому какие файлы принадлежат.

Числовой group id. Red Hat использует group id в довольно неожиданном способе усиления защиты файла. Часто group id равен user id.

Полное имя пользователя. Максимальная длина мне неизвестна, но лучше ограничиться разумными рамками (до 30 символов).

Домашний каталог пользователя. Обычно /home/username (например, /home/smithj). Там хранятся все личные файлы пользователя и его web-страницы.

Пользовательская оболочка. Обычно используется « /bin/bash » для доступа к оболочке bash.

Если нужно чтобы пользователь не имел доступа к shell, создайте скрипт « /bin/sorrysh », который выведет соотвтетствующее сообщение и завершит работу пользователя. Впишите скрипт сюда в качестве оболочки.

Замечание: Если пользователь должен передавать файлы по “FTP” shell должна быть нормальной оболочкой, например, « /bin/bash », а чтобы не давать shell-доступа надо настроить доступ в домашнем каталоге пользователя. См. раздел Администрирование Web-сервера и HTTP Proxy в главе 7.

Файл « /etc/shadow » хранит данные о пользователе в формате:

Как и в файле passwd, каждое поле в файле shadow отделяется двоеточием:

Username, до 8 символов. Совпадает с username в файле /etc/passwd.

Пароль, 13 символов (зашифрованный). Пустая запись (то есть, ::) показывает, что для входа пароль не нужен (обычно идея плохая), и запись «*» (то есть, :*:) показывает, что вход заблокирован.

Количество дней (с 1 января 1970), когда пароль был сменен в последний раз.

Число дней до смены пароля (0 показывает, что он может быть сменен всегда).

Число дней, после которых пароль должен быть сменен (99999 показывает, что пользователь может не менять пароль фактически никогда).

Число дней, в течение которых пользователь получает предупреждения о необходимости пароль сменить (7 для полной недели).

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

Число дней, начиная с 1 января 1970, после которых пароль будет заблокирован.

Зарезервировано для возможного будущего использования.

Источник

/etc/shadow Структура файла и формат записей — Пароли в linux

Primary tabs

Forums:

Файл /etc/shadow доступен для чтения только пользователю root и предназначен для хранения зашифрованных паролей.

  • В нем также содержится учетная информация, которая отсутствует в файле /etc/passwd.
  • При использовании скрытых паролей соответствующие поля в файле /etc/passwd всегда содержат символ «х».
  • Оба файла (/etc/shadow и /etc/passwd) необходимо сопровождать независимо друг от друга (или использовать команду useradd для автоматического управления файлами).
  • Как и /etc/passwd, файл /etc/shadow содержит одну строку для каждого пользователя.

Формат записей /etc/shadow

Каждая строка состоит из 9 полей, разделенных двоеточиями:

  1. Регистрационное имя. Регистрационное имя берется из файла /etc/passwd. Оно связывает записи файлов /etc/passwd и /etc/shadow.
  2. Зашифрованный пароль.
  3. Дата последнего изменения пароля. Данное поле обычно заполняется командой passwd.
  4. Минимальное число дней между изменениями пароля. В данном поле задается количество дней, спустя которые пользователь сможет снова изменить пароль.
  5. Максимальное число дней между изменениями пароля. Максимальное время жизни пароля определяется суммой значений данного и седьмого полей.
  6. Количество дней до истечения срока действия пароля, когда выдается предупреждение.
    В данном поле задано количество дней, оставшихся до момента устаревания пароля, когда программа login должна предупреждать пользователя о необходимости изменить пароль.
  7. Количество дней по истечении срока действия пароля, когда учетная запись отключается.
  8. Срок действия учетной записи — по окончанию этого срока пользователь не сможет зарегистрироваться в системе, пока администратор не сбросит значение поля. Если поле содержит пустое значение, учетная запись всегда будет активной.
  9. Зарезервированное поле, которое в настоящее время всегда пустое.

Пример записи в /etc/shadow

Типовой вид записи пользователя в файле /etc/shadow имеет следующий вид:

Источник

IgorKa — Информационный ресурс

Немного обо всем и все о немногом, или практический опыт системного администратора.

Октябрь 2009
Пн Вт Ср Чт Пт Сб Вс
« Сен Ноя »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Лекция №10 Пользователи, группы. Файлы passwd, shadow, group.

На этой лекции мы поговорим о пользователях (учетных записях) и группах пользователей. Как я уже неоднократно говорил операционная система Linux является многопользовательской системой в которой может одновременно существовать достаточно большое число пользователей, которых можно объединять в группы.
Все пользователи локальной системы перечислены в файле /etc/passwd. Давайте посмотрим содержимое этого файла с помощью команды less /etc/passwd. Каждая строка файла /etc/passwd описывает одну учетную запись. Несмотря на то, что у вас может быть всего два пользователя в системе (root и вы сами), строчек в файле /etc/passwd гораздо больше. Дело в том, что для большинства служб операционной системы Linux существует своя собственная учетная запись с правами необходимыми для нормального функционирования этой службы. Такой подход позволяет повысить безопасность системы. Каждая строка состоит из семи полей разделенных двоеточием. Давайте рассмотрим эти поля. Для примера возьмем следующую строку: igor:x:1000:1000:igor. /home/igor:/bin/bash.

1. igor — мнемоническое представление учетной записи. Хотя система работает только с числовыми именами пользователей, нам проще запоминать имена именно в таком виде.

2. х — раньше в этом поле был пароль. Теперь он находится в другом месте, но поле осталось и сейчас там находится просто символ х.

3. 1000 — цифровое обозначение учетной записи. Его UID.

4. 1000 — числовое обозначение основной группы пользователя (GID). Каждый пользователь может принадлежать нескольким группам, но только одна из групп является для пользователя — основной. Именно та которая указана в четвертом поле файла /etc/passwd. Также пользователь должен обязательно принадлежать хотя бы одной группе. Как правило при создании нового пользователя создается одноименная группа для этого пользователя, которая и является основной.

5. igor. — В этом поле может содержаться описание пользователя, что позволяет администратору более полно описать того или иного пользователя или службу. Данное поле имеет стандартный формат о котором мы поговорим позднее, когда рассмотрим программу создания нового пользователя в системе.

6. /home/igor — путь к домашнему каталогу пользователя.

7. /bin/bash — командный интерпретатор пользователя. Если вы посмотрите на седьмое поле других учетных записей, то заметите, что /bin/bash является интерпретатором по умолчанию для обычных пользователей, /bin/sh — является интерпретатором для различных служб. Если службе для своей работы не нужен командный интерпретатор, то можно встретить запись /bin/false или /bin/nologin. Обе эти строчки не позволяют регистрироваться в системе, с той лишь разницей, что последняя записывает в журнал попытки входа.

Теперь рассмотрим файл в котором хранятся пароли пользователей. Данный файл называется /etc/shadow. В нем по аналогии с файлом /etc/passwd каждая строка описывает одного пользователя и имеет 9 полей разделенных двоеточием. Для просмотра этого файла нужны права администратора. Давайте рассмотрим поля данного файла на примере строки: root. 14438:0:99999:7.

1. root — мнемоническое имя пользователя к которому относится данная строка.

2. ! — в этом поле хранится пароль, а точнее его хеш (хеш пароля). Что такое хеш пароля? Хеш пароля это некая последовательность символов, которая получается после определенных необратимых преобразований над паролем пользователя. Необратимых потому, что обратная процедура: получение исходного вида пароля из хеша пароля представляет собой сложную математическую задачу невыполнимую в определенном заданном промежутке времени (обычно десятилетия и более). Когда вы каждый раз регистрируетесь в системе, то с вашим паролем каждый раз проводится операция (назовем ее хешированием) вычисления хеша пароля и сравнения его с хешем пароля из файла /etc/shadow. Если хеши паролей совпали — пользователь проходит аутентификацию.

По умолчанию в большинстве дистрибутивов применяется алгоритм хеширования md5. Но ничего не мешает вам заменить этот алгоритм на еще более стойкие версии (например md6). Правда в рамках лекции мы этот вопрос рассматривать не будем. Вернемся ко второму полю файла /etc/shadow. В примере вы видите там символ ! (восклицательный знак). Это в данном примере не хеш пароля. Хеш пароля выглядит примерно так: $1$4vN1osMk$EWywQfrBWxCtK45.4ARgc. Первые три символа являются одинаковыми для определенного алгоритма хеширования и позволяют его (алгоритм идентифицировать). В примере $1$ — это идентификатор алгоритма md5. Если перед любым хешем пароля в файле /etc/shadow поставить символ ! или *, то такой пароль будет признан недействительным и учетная запись будет заблокирована.

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

Поля 3-7 содержат временные параметры пароля. Подробнее смотрите в
man shadow.

Поле 8 — это дата до которой учетная запись будет считаться действительной. По достижении указанного времени запись будет заблокирована. Если поле пустое, то время действия не ограничено.

Поле 9 — это зарезервированное поле.

Группы. Информация о группах хранится в файле /etc/group. Принцип тот же: строка описывает одну группу, есть несколько полей. Полей всего 4-е. Рассмотрим пример строки: shara:x:1002:igor,test.

1. shara — мнемоническое имя группы.

2. х — пароль для группы.

3. 1002 — цифровой код группы.

4. igor,test — пользователи, которые входят в группу. Перечисляются через запятую.

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

Источник

Защита с помощью пароля в Linux: файл /etc/shadow

Защита с помощью пароля на Linux

Использование файла /etc/shadow

Пароль в Linux системах, используемый для учётных записей, обычно доступен как /etc/passwd. Для дополнительных мер безопасности используется теневая (shadow) копия этого файла, которая включает пароли ваших пользователей. А на самом деле, хранится даже хеш пароля, для максимальной безопасности.

Пример строки в /etc/shadow может выглядеть вроде этого:

Для нормального отображения давайте разделим эту строку на несколько полей:

  1. mial
  2. $6$Xwg3PsUW$M49EeBEW7jBPfArGNLcNt6p2uck2o71V.XS8VZzhcNCYQRpPkWTD16WSrTHUhQ2qegMgb56CLuc2Qe/TxXT.H0
  3. 16441
  4. 0
  5. 99999
  6. 7.

Объяснение полей

Время взглянуть, что эти строки означают:

1) Имя пользователя

Это простое поле, оно содержит имя пользователя конкретного аккаунта.

2) Детали хэширования паролей + хешированный пароль

Самая важная строка в файле /etc/shadow, конечно, это второе поле. Оно включает детали о пароле и содержит несколько частей:

$6 = SHA-512

$Xwg3PsUW$ = Соль и разделители. Соль — это маленькая строка символов для смешения в функции хеширования. Её цель — усложнение исполнения конкретных атак, основанных на подборе пароля по его хешу. Эта соль состоит из символов a-z, A-Z, 0-9, / и .

Длинная строка символов = хешированный пароль

Длинная строка и её длина зависят от использованного метода хеширования. С $6, или SHA-512, она будет из 86 символов.

Длины:

  • $1 = MD5 с 22 символами
  • $5 = SHA-256 с 43 символами

Обратите внимание:

Когда поле пароля содержит ! или *, это значит, что аккаунт заблокирован. Двойной ! (!!) сигнализирует, что пароль никогда не был установлен.

3) Последнее изменение

Номер показывает, когда пароль был изменён последний раз.

Этот номер показывает, когда пароль был изменён последний раз. Номер отображает номер дня, отсчитанного с начала эпохи (1 января 1970). Прямо сейчас это промежуток 16000+.

4) Число дней до смены пароля

Это поле определяет, сколько должно пройти, пока пароль может быть сменён. В нашем случае это ноль, т. е. пароль можно поменять прямо сейчас.

5) Число дней до требуемой смены пароля

Другое поле, название которого само объясняет его функцию, отображает как долго осталось (в днях) до требования сменить пароль. Отличная опция для принудительной смены пароля.

6) Порог предупреждения в днях

В паре с предыдущем полем, это поле описывает, за сколько дней до требуемой смены пароля будут даваться предупреждения. В этом примере это одна неделя.

7) Дата истечения

Также хранится в днях, описывает, когда учётная запись истекает (с даты начала эпохи).

8) Зарезервированное поле

Обычно не используется дистрибутивами Linux.

Разрешения на файл

Владельцем файла /etc/shadow должен быть пользователь root, обычно групповым владельцем является shadow. Этот файл не должен быть читаемым кем угодно, следовательно, подходящим режимом прав на этот файл является 640.​

Проверка согласованности /etc/passwd и /etc/shadow

Дистрибутивы Linux обычно содержат утилиту pwck. Эта маленькая утилита проверет согласованность обоих файлов и укажет на какие-либо проблемы. Задавая ключ -r мы определяем, что она работает в только режиме чтения.

Источник

Читайте также:  Windows sign on password
Оцените статью