- Linux shadow файл где находится
- /etc/shadow Структура файла и формат записей — Пароли в linux
- Primary tabs
- Forums:
- Формат записей /etc/shadow
- Пример записи в /etc/shadow
- IgorKa — Информационный ресурс
- Лекция №10 Пользователи, группы. Файлы passwd, shadow, group.
- Защита с помощью пароля в Linux: файл /etc/shadow
- Защита с помощью пароля на Linux
- Объяснение полей
- Разрешения на файл
- Проверка согласованности /etc/passwd и /etc/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 », который выведет соотвтетствующее сообщение и завершит работу пользователя. Впишите скрипт сюда в качестве оболочки.
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
« Сен | Ноя » | |||||
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 может выглядеть вроде этого:
Для нормального отображения давайте разделим эту строку на несколько полей:
- mial
- $6$Xwg3PsUW$M49EeBEW7jBPfArGNLcNt6p2uck2o71V.XS8VZzhcNCYQRpPkWTD16WSrTHUhQ2qegMgb56CLuc2Qe/TxXT.H0
- 16441
- 0
- 99999
- 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 мы определяем, что она работает в только режиме чтения.
Источник