Etc shadow in linux

Для чего нужен файл /etc/shadow

В системах Linux можно использовать несколько различных схем аутентификации. Наиболее часто используемая и стандартная схема — аутентификация по файлам /etc/passwd и /etc/shadow .

/etc/shadow — это текстовый файл, содержащий информацию о паролях пользователей системы. Он принадлежит пользователю root и теневой группе и имеет 640 разрешений .

Формат /etc/shadow

Файл /etc/shadow содержит по одной записи в каждой строке, каждая из которых представляет учетную запись пользователя. Вы можете просмотреть содержимое файла с помощью текстового редактора или такой команды, как cat :

Обычно первая строка описывает пользователя root, за которым следуют учетные записи системного и обычного пользователя. Новые записи добавляются в конец файла.

Каждая строка файла /etc/shadow содержит девять полей, разделенных запятыми:

  1. Имя пользователя. Строка, которую вы вводите при входе в систему. Учетная запись пользователя, существующая в системе.
  2. Зашифрованный пароль. Пароль использует $type$salt$hashed формат $type$salt$hashed . $type — это алгоритм криптографического хеширования метода и может иметь следующие значения:
    • $1$ — 5 MDL
    • $2a$ — Blowfish
    • $2y$ — Eksblowfish
    • $5$ — SHA-256
    • $6$ — SHA-512

Если в поле пароля есть звездочка ( * ) или восклицательный знак ( ! ), Пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя , по-прежнему разрешены.

В старых системах Linux зашифрованный пароль пользователя хранился в /etc/passwd .

  • Последнее изменение пароля. Это дата последней смены пароля. Число дней отсчитывается с 1 января 1970 года (дата эпохи).
  • Минимальный возраст пароля. Количество дней, которое должно пройти, прежде чем можно будет изменить пароль пользователя. Обычно он равен нулю, что означает отсутствие минимального возраста пароля.
  • Максимальный возраст пароля. Количество дней после смены пароля пользователя. По умолчанию этот номер установлен на 99999 .
  • Период предупреждения. Количество дней до истечения срока действия пароля, в течение которых пользователя предупреждают о необходимости изменения пароля.
  • Период бездействия. Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя. Обычно это поле пусто.
  • Дата окончания срока. Дата, когда учетная запись была отключена. Он представлен как дата эпохи.
  • Не используется. Это поле игнорируется. Он зарезервирован для использования в будущем.
  • Файл /etc/shadow не следует редактировать вручную, если вы не знаете, что делаете. Всегда используйте команду, предназначенную для этой цели. Например, чтобы изменить пароль пользователя, используйте команду passwd , а чтобы изменить информацию об устаревании пароля, используйте команду chage .

    Пример записи

    Давайте посмотрим на следующий пример:

    Запись выше содержит информацию о пароле пользователя linuxize:

    • Пароль зашифрован с помощью SHA-512 (пароль усечен для лучшей читаемости).
    • Последний раз пароль менялся 23 апреля 2019 г. — 18009 .
    • Нет минимального возраста пароля.
    • Пароль необходимо менять не реже, чем каждые 120 дней.
    • Пользователь получит предупреждающее сообщение за семь дней до истечения срока действия пароля.
    • Если пользователь не попытается войти в систему через 14 дней после истечения срока действия пароля, учетная запись будет отключена.
    • Срок действия учетной записи отсутствует.

    Выводы

    В /etc/shadow хранятся записи о зашифрованных паролях пользователей, а также другая информация, связанная с паролями.

    Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

    Источник

    Понимание файла /etc/shadow

    /etc/shadow – это текстовый файл, содержащий информацию о паролях пользователей системы. Он принадлежит пользователю root и группе shadow и имеет 640 разрешений.

    Формат /etc/shadow

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

    Как правило, первая строка описывает пользователя root, затем системные и обычные учетные записи пользователей. Новые записи добавляются в конец файла.

    Каждая строка файла /etc/shadow содержит девять полей, разделенных запятыми:

    1. Имя пользователя. Строка, которую вы вводите при входе в систему. Учетная запись пользователя, которая существует в системе.
    2. Зашифрованный пароль. Пароль использует формату $type$salt$hashed. $type является методом криптографического алгоритма хеширования и может иметь следующие значения:
      • $1$ – MD5
      • $2a$ – Blowfish
      • $2y$ – Eksblowfish
      • $5$ – SHA-256
      • $6$ – SHA-512
    Читайте также:  Robo 3t linux install

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

    В старых системах Linux зашифрованный пароль пользователя хранился в файле /etc/passwd.

  • Последнее изменения пароля. Это дата последнего изменения пароля. Количество дней исчисляется с 1 января 1970 года (дата эпохи).
  • Минимальный срок действия пароля. Количество дней, которое должно пройти, прежде чем пароль пользователя может быть изменен. Как правило, он установлен на ноль, что означает отсутствие минимального срока действия пароля.
  • Максимальный срок действия пароля. Количество дней после смены пароля пользователя. По умолчанию этот номер установлен на 99999.
  • Период предупреждения. Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля.
  • Период бездействия. Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя. Обычно это поле пустое.
  • Срок хранения. Дата, когда учетная запись была отключена. Это представляется как дата эпохи.
  • Неиспользованный. Это поле игнорируется. Оно зарезервированно для будущего использования.
  • Файл /etc/shadow не стоит редактировать вручную, если вы не знаете, что вы делаете. Всегда используйте команду, которая предназначена для этой цели. Например, чтобы изменить пароль пользователя, используйте команду passwd, а для изменения информации об устаревании пароля используйте команду chage.

    Пример записи

    Давайте посмотрим на следующий пример:

    Запись выше содержит информацию о пароле пользователя andreyex:

    • Пароль зашифрован с помощью SHA-512 (пароль сокращен для лучшей читаемости).
    • Последний раз пароль изменялся 23 апреля 2019 года 18009.
    • Минимального срока действия пароля нет.
    • Пароль необходимо менять как минимум каждые 120 дней.
    • Пользователь получит предупреждающее сообщение за семь дней до истечения срока действия пароля.
    • Если пользователь не попытается войти в систему через 14 дней после истечения срока действия пароля, учетная запись будет отключена.
    • Нет срока действия аккаунта.

    Вывод

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

    Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Источник

    Understanding /etc/shadow file format on Linux

    Understanding /etc/shadow file fields/format

    Basically, the /etc/shadow file stores secure user account information. All fields are separated by a colon ( : ) symbol. It contains one entry per line for each user listed in /etc/passwd file. Generally, shadow file entry looks as follows (click to enlarge image):

    (Fig.01: /etc/shadow file fields)

    1. Username : It is your login name.
    2. Password : It is your encrypted password. The password should be minimum 8-12 characters long including special characters, digits, lower case alphabetic and more. Usually password format is set to $id$salt$hashed , The $id is the algorithm used On GNU/Linux as follows:
      1. $1$ is MD5
      2. $2a$ is Blowfish
      3. $2y$ is Blowfish
      4. $5$ is SHA-256
      5. $6$ is SHA-512
    3. Last password change (lastchanged) : Days since Jan 1, 1970 that password was last changed
    4. Minimum : The minimum number of days required between password changes i.e. the number of days left before the user is allowed to change his/her password
    5. Maximum : The maximum number of days the password is valid (after that user is forced to change his/her password)
    6. Warn : The number of days before password is to expire that user is warned that his/her password must be changed
    7. Inactive : The number of days after password expires that account is disabled
    8. Expire : days since Jan 1, 1970 that account is disabled i.e. an absolute date specifying when the login may no longer be used.

    A note about password ageing

    The last 6 fields provides password aging and account lockout features. You need to use the chage command to setup password aging. According to man page of shadow – the password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 character alphabet a through z, A through Z, 0 through 9, \. and /. Optionally it can start with a “ $ ” character. This means the encrypted password was generated using another (not DES) algorithm. For example if it starts with “ $1$ ” it means the MD5-based algorithm was used. If a password field which starts with a exclamation mark ( ! ) means that the password is locked. The remaining characters on the line represent the password field before the password was locked.

    Читайте также:  Как обновлять приложения linux

    How do I change the password?

    Use the following syntax to change your own password:
    $ passwd
    See passwd command tutorial page for more information.

    How do I change the password for other users?

    How do I change or set password ageing information?

    To change user password expiry information use the chage command on Linux. The syntax is (again you must be root to set the password again) as follows:

    Источник

    Защита с помощью пароля в 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 мы определяем, что она работает в только режиме чтения.

    Источник

    /etc/shadow File in Linux Explained

    In this tutorial, we will understand how the file /etc/shadow formated and why it is used for. The file /etc/shadow can be read-only by the system user ‘root’.

    In Linux, when you create a user (using useradd command) the account information such as username, UID, GID etc are stored in a system file /etc/passwd and secure account information such as encrypted password, last changed, expire date etc are stored in another file called /etc/shadow.

    Each system user will have an entry in /etc/shadow file. There are 8 fields per line each separated by a “colon :”. A sample entry is as follows.

    /etc/shadow file Format

    Originally, the encrypted password was stored in /etc/passwd which had to be world readable so that the system could map user-ids to user names, and so that users could find out information about each other and then people realized that this was a security problem. So a new file /etc/shadow was created to store the encrypted password which is readable only by root and also contains other information that the /etc/passwd file did not support related to the user’s account and password, e.g. when the password was last changed and when it will expire. This file hides the hashes from normal users of the system while keeping them available for user authentication purposes. Look below

    Читайте также:  Пропал ssd при установке windows

    You can see that we are unable to see the content of the file as normal user. You need to have privileges to see its contents. As /etc/passwd file, it also contains some lines and uses colons (:) to separate the fields where each line represents a specific user.

    /etc/shadow file has nine field which can be represented as below

    Below the details of each field:

    • Username or login: This first field denotes the username that should be used while logging in to the system.
    • Password: The second field stores the password in encrypted format. the $xx$ initial ($6$ for the example above) just after the first field (root:) indicates the type of encryption. As noted above, the asterisk * signifies that this account cannot be used to log in and the !! means that the user doesn’t have a password so he has been created without password.
    • date of last Password Change (lastchanged): The third field indicates the date of the last password change, expressed as the number of days since Jan 1, 1970. The 0 value means that the user should change his password the next time he will log in the system.
    • Minimum days: This fourth field stores the minimum number of days after which a user can change his password. You won’t be able to change the password before that.
    • Maximum days: This fifth field indicates the maximum number of days the password is valid. After that, the user is forced to change his password.
    • Warning password period: The sixth field denotes the number of days before which the user will receive a warning notification about the password expiry and must be changed.
    • Inactivity period: The seventh field indicates the number of days after the password expiration after which the account will be disabled. When empty, this field indicates that there are no enforcement of an inactivity period.
    • Expiration date: The eighth field indicates the days since Jan 1, 1970 that account is disabled
    • Reserved: the ninth field is reserved for future use.

    /etc/shadow file permission

    This is the second important file on Linux because it store password so its access and modification can be very critical. This why its permission are 400 which gives only read permission to the owner. It is also to prevent mistaken modifications. You can see the default permissions of this file below:

    The password could be encrypted using different methods, which is recognized by the id present after first character which is the $ symbol. Below you can have the value of the id and the corresponding encryption technique it indicates:

    • 1: MD5
    • 2a: Blowfish
    • 5: SHA-256
    • 6: SHA-512

    How the encrypted password works

    The algorithm used to encrypt the password field is technically referred to as a one way hash function. This is an algorithm that is easy to compute in one direction, but very difficult to calculate in the reverse direction.

    When a user is provided a password, it is encoded with a randomly generated value called the salt. This means that any particular password could be stored in 4096 different ways. The salt value is then stored with the encrypted password.

    When a user logs in and supplies a password, the salt is first retrieved from the stored encrypted password. Then the supplied password is encoded with the salt value, and then compared with the encrypted password. If the passwords match, then the user is authenticated.

    So, it is always recommended to select passwords which is strong- contains a mixing of alphabets, digits and special symbols and avoid selecting dictionary words.

    Источник

    Оцените статью