Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Linux etc shadow

Linux etc 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, после которых пароль будет заблокирован.

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

Understanding Linux /etc/shadow File Format

by Magesh Maruthamuthu · Last Updated: July 30, 2019

The /etc/shadow file stores actual password in encrypted format and other passwords related information such as user name, last password change date, password expiration values, etc,.

It’s a text file and readable only by the root user and is therefore less of a security risk.

The /etc/shadow file contain every user details as a single line with nine fields, each fields separated by colon : .

We had already written an article about Linux /etc/passwd file format in previous post. As earlier explained in the /etc/passwd file that second field written as (x), which means shadowing is enabled and encrypted password exists for that user in another file “/etc/shadow”.

The encrypted passwords can be stored in /etc/passwd file and the same was followed in the initial days. But it’s not recommended due to world readable permissions on the /etc/passwd file.

Also, /etc/passwd doesn’t allow to store other password related information since the /etc/passwd file has only one field for password information.

To mitigate all these issue, they had created the /etc/shadow file and allowed to store encrypted password and other password related information.

The /etc/login.defs file provides default configuration information for user account password parameters. It defines, Password ageing related information such as password Min/Max days, password warning age, etc.,

How to Access /etc/shadow File in Linux?

As i told in the beginning of the article, it’s a text file and readable only by the root user. Use any file manipulation commands to access it.

I have trimmed the file for better understanding.

What are the Nine Fields and it’s Details?

The /etc/shadow file contain every user password details as a single line with nine fields as described below, each fields separated by colon : .

The password field comes with following three variants.

  • Usable Encrypted Password: This allow us to login to the Linux system since it’s comes with proper password.
  • Locked Password: A password field which starts with a exclamation mark means that the password is locked.
  • (! and *) Represent Empty Password: This field may be empty, in which case no passwords are required to authenticate as the specified login name. These user will not be able to use a unix password to log in.
Читать еще:  Open suse linux установка

These are the Nine fields, which is in /etc/shadow file.

  • Username: User login name, it be a valid account name, which exist on the system.
  • Encrypted Password: Encrypted Password hash, which contains three parts like hash_algorithm, hash_salt, and hash_data.
  • Date of last password change: The date of the last password change, expressed as the number of days since Jan 1, 1970.
  • Minimum password age: The minimum password age is the number of days the user will have to wait before she will be allowed to change her password again.
  • Maximum password age: The maximum password age is the number of days after which the user will have to change her password.
  • Password warning period: The number of days before a password is going to expire (see the maximum password age above) during which the user should be warned.
  • Password inactivity period: The number of days after a password has expired during which the password should still be accepted. After expiration of the password and this expiration period is elapsed, no login is possible using the current user’s password.
  • Account expiration date: The date of expiration of the account, expressed as the number of days since Jan 1, 1970.
  • Reserved field: Not used or reserved for future use.

Understanding the Password Hash Field and it’s Details?

The Password hash field contains an encrypted password instead of original password and the original password haven’t stored anywhere in system.
The encrypted password is having three fields and the field is separated by $ symbol.

These are the three fields, which is in password field.

  • hash_algorithm: This field shows which hashing algorithm used.
  • hash_salt: This field is contain encrypted password instead of actual password.
  • hash_data: This field is salted hash password.

Details of hash_algorithm

Details of hash_algorithm and it’s code.

How to Check /etc/shadow File Permission?

Simply use ls command to check the /etc/shadow file permission.

How to View Users Password Properties in Linux?

Use chage command to check users password properties.

Предложение от 8host.com

Использование passwd и adduser для управления паролями на выделенном сервере Linux

Вступление

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

Данное руководство рассматривает некоторые базовые файлы, такие как «/etc/passwd» и «/etc/shadow», а также такие инструменты для настройки проверки подлинности, как команды «passwd» и «adduser».

Для демонстрации примеров используется выделенный сервер Ubuntu 12.04 , но любой современный дистрибутив Linux работает таким же образом.

Что такое файл «/etc/passwd»?

Для начала нужно рассмотреть файл под названием «/etc/passwd», который на самом деле не содержит паролей.

Когда-то этот файл хранил хешированные пароли всех пользователей в системе. Тем не менее, по соображениям безопасности позже эта ответственность была перенесена в отдельный файл.

Итак, что же находится в файле «/etc/passwd»?

less /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
. . .

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

То есть, любой пользователь системы может читать данный файл. Вот почему все пароли были перенесены в другой файл.

Рассмотрим формат файла.

Чтение файла «/etc/passwd»

Каждая строка файла содержит информацию о входе всех пользователей системы. Некоторые из этих пользователей могут быть созданы для работы демонов и фоновых служб.

Чтобы объяснить, какая именно информация содержится в строках данного файла, нужно подробно рассмотреть одну строку.

Поля информации разделяются двоеточием (:). Каждая строка типичного Linux-файла «/etc/passwd» содержит 7 полей:

  1. Root: имя пользователя;
  2. х: место для информации о паролях; пароль можно найти в файле «/etc/shadow».
  3. : ID пользователя. Каждый пользователь имеет уникальный идентификатор, благодаря которому система распознает его. ID root-пользователя всегда 0;
  4. : ID группы. Каждая группа имеет уникальный идентификатор. По умолчанию у каждого пользователя есть главная группа. Опять же, ID root-группы всегда 0;
  5. root: поле для примечаний. Данное поле можно использовать для описания пользователя или его функций. Оно может содержать что угодно, начиная от контактной информации пользователя и заканчивая описанием сервисов, для которых была создана учетная запись;
  6. /root: домашний каталог. Для обычных пользователей домашним каталогом является «/home/username», для root-пользователя это «/root»;
  7. /bin/bash: оболочка пользователя. Данное поле содержит оболочку, которая будет создана, или команды, которые будут выполняться при входе пользователя в систему.

По мере добавления пользователей с помощью таких команд, как «adduser» и «useradd», или с установкой большего количества сервисов этот файл будет расти. Информация о новом пользователе будет добавлена в конце данного файла.

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

Что такое «/etc/shadow»?

Фактические данные о паролях хранятся в файле с именем «/etc/shadow».

Читать еще:  Linux скачать файл

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

Функция выведения ключей – это алгоритм, создающий при вводе одних и тех же данных определенный хэш. Такой же алгоритм выполняется на пароль, который дается в процессе аутентификации, и это значение сравнивается со значением в этом файле.

Имейте в виду, данный файл, в отличие от файла «/etc/passwd», не доступен дл прочтения непривилегированными пользователями.

Пользователь root имеет привилегии читать и писать в файлах; группа «shadow», содержащая пользователей, которым необходима аутентификация, имеет права на чтение.

Чтение файла «/etc/shadow»

Чтобы открыть файл «/etc/shadow», введите:

sudo less /etc/shadow
root:$6$mJD3Rsj4$xUa7jru6EEGTXnhwTfTT26/j8M5XiQvUl6UH32cfAWT/6W9iSI5IuIw5OOw4khwrsOHPyMwfCLyayfYiVdhAq0:15952:0:99999:7.
daemon:*:15455:0:99999:7.
bin:*:15455:0:99999:7.
sys:*:15455:0:99999:7.
sync:*:15455:0:99999:7.
games:*:15455:0:99999:7.
man:*:15455:0:99999:7.
. . .

Как и в файле «/etc/passwd», каждая строка содержит информацию об отдельном пользователе, а каждое поле отделяется символом двоеточия.

Примечание: символ звездочки (*) во втором поле строк значит, что данная учетная запись не может войти в систему. Обычно это используется для сервисов.

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

Файл «/etc/shadow» содержит следующие поля:

  1. daemon: имя пользователя;
  2. *: соль и хешированный пароль; данное поле можно просмотреть, войдя как root. Как указано выше, звездочка значит, что данная учетная запись не может быть использована для входа в систему.
  3. 15455: последнее изменение пароля. Данное значение ограничивается датой начала «Unix-эпохи» (1 января 1970).
  4. : допустимое количество дней для смены пароля. 0 в данном поле значит, что таких ограничений нет.
  5. 99999: количество дней до необходимости смены пароля. Значение 99999 указывает на то, что ограничения на продолжительность использования одного пароля не установлены.
  6. 7: количество дней до предупреждения об истечении срока использования пароля. Если требуется сменить пароль, пользователь будет извещен о данной необходимости за указанное количество дней.
  7. [blank]: последние три поля нужны для того, чтобы указать количество дней до деактивации учетной записи. Последнее поле не используется.

Изменение пароля

Для изменения паролей пользователей используется команда «passwd».

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

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

sudo passwd username

Будет запрошен пароль для команды «sudo», затем можно будет ввести новый пароль и подтвердить его.

Если сравнить значение хэш в файле «/etc/shadow», можно увидеть, что после ввода команды passwd оно изменилось.

Создание нового пользователя

Нового пользователя можно создать при помощи нескольких команд.

Самый простой способ – использовать команду «adduser». В системах Ubuntu данная команда связана со скриптом «perl», который обрабатывает создание пользователя.

Команду можно вызвать следующим образом:

adduser demo
Adding user `demo’ .
Adding new group `demo’ (1000) .
Adding new user `demo’ (1000) with group `demo’ .
Creating home directory `/home/demo’ .
Copying files from `/etc/skel’ .
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for demo
Enter the new value, or press ENTER for the default
Full Name []: test
Room Number []: room
Work Phone []: work phone
Home Phone []: home phone
Other []: other
Is the information correct? [Y/n]

На данном этапе появится несколько вопросов, которые помогут внести необходимую информацию в файлы «/etc/passwd» и «/etc/shadow».

Можно просмотреть внесенную в файл «/etc/passwd» запись, введя:

tail -1 /etc/passwd
demo:x:1000:1000:test,room,work phoneme phone,other:/home/demo:/bin/bash

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

Можно запустить похожую команду для того, чтобы просмотреть изменения, внесенные в файл «/etc/shadow».

sudo tail -1 /etc/shadow
demo:$6$XvPCmWr4$HXWmaGSeU5SrKwK2ouAjc68SxbJgUQkQ.Fco9eTOex8232S7weBfr/CMHQkullQRLyJtCAD6rw5TVOXk39NAo/:15952:0:99999:7.

Итоги

При помощи этих простых инструментов можно изменить регистрационную информацию системы.

После внесения изменений важно проверить, можете ли вы войти в систему. Также необходимо проверить права на идентификационные файлы, чтобы сохранить функциональность сервера и обеспечить ему безопасность.

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

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

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

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

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

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

  1. mial
  2. $6$Xwg3PsUW$M49EeBEW7jBPfArGNLcNt6p2uck2o71V.XS8VZzhcNCYQRpPkWTD16WSrTHUhQ2qegMgb56CLuc2Qe/TxXT.H0
  3. 16441
  4. 99999
  5. 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 символами
Читать еще:  Запустить файл из командной строки linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Understanding the /etc/shadow File

Posted Dec 27, 2019

There are several different authentication schemes that can be used on Linux systems. The most commonly used and standard scheme is to perform authentication against the /etc/passwd and /etc/shadow files.

/etc/shadow is a text file that contains information about the system’s users’ passwords. It is owned by user root and group shadow, and has 640 permissions.

/etc/shadow Format #

The /etc/shadow file contains one entry per line, each representing a user account. You can view the contents of the file, with a text editor or a command such as cat :

Typically, the first line describes the root user, followed by the system and normal user accounts. New entries are appended at the end of the file.

Each line of the /etc/shadow file contains nine comma-separated fields:

Username. The string you type when you log into the system. The user account that exist on the system.

Encrypted Password. The password is using the $type$salt$hashed format. $type is the method cryptographic hash algorithm and can have the following values:

If the password field contains an asterisk ( * ) or exclamation point ( ! ), the user will not be able to login to the system using password authentication. Other login methods like key-based authentication or switching to the user are still allowed.

In older Linux systems, the user’s encrypted password was stored in the /etc/passwd file.

Last password change. This is the date when the password was last changed. The umber of days is counted since January 1, 1970 (epoch date).

Minimum password age. The number of days that must pass before the user password can be changed. Typically it is set to zero, which means that there is no minimum password age.

Maximum password age. The number of days after the user password must be changed. By default, this number is set to 99999 .

Warning period. The number of days before the password expires during which the user is warned that the password must be changed.

Inactivity period. The number of days after the user password expires before the user account is disabled. Typically this field is empty.

Expiration date. The date when the account was disabled. It is represented as an epoch date.

Unused. This field is ignored. It is reserved for future use.

The /etc/shadow file should not be edited by hand unless you know what you are doing. Always use a command that is designed for the purpose. For example, to change a user password, use the passwd command, and to change the password aging information, use the chage command.

Example Entry #

Let’s take a look at the following example:

The entry above contains information about the user “linuxize” password:

  • The password is encrypted with SHA-512 (the password is truncated for better readability).
  • The password was last changed on April 23, 2019 — 18009 .
  • There is no minimum password age.
  • The password must be changed at least every 120 days.
  • The user will receive a warning message seven days before the password expiration date.
  • If the user doesn’t attempt to login to the system 14 days after the password is expired, the account will be disabled.
  • There is no account expiration date.

Conclusion #

The /etc/shadow file keeps records about encrypted users’ passwords, as well as other passwords related information.

If you have any questions or feedback, feel free to leave a comment.

Ссылка на основную публикацию
Adblock
detector