Letysite.ru

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

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

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

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.
Читать еще:  Управление кулером 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.

Итоги

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

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

3 мин для чтения Понимание файла /etc/shadow

Главное меню » Linux » Понимание файла /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

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

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

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

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

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

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

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

    Вывод

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

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

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

    Linux shadow файл

    Traditional Unix systems keep user account information, including one-way encrypted passwords, in a text file called « /etc/passwd ». As this file is used by many tools (such as «ls») to display file ownerships, etc. by matching user id #’s with the user’s names, the file needs to be world-readable. Consequentally, this can be somewhat of a security risk.

    Another method of storing account information, one that I always use, is with the shadow password format. As with the traditional method, this method stores account information in the /etc/passwd file in a compatible format. However, the password is stored as a single «x» character (ie. not actually stored in this file). A second file, called « /etc/shadow », contains encrypted password as well as other information such as account or password expiration values, etc. The /etc/shadow file is readable only by the root account and is therefore less of a security risk.

    While some other Linux distributions forces you to install the Shadow Password Suite in order to use the shadow format, Red Hat makes it simple. To switch between the two formats, type (as root):

    /usr/sbin/pwconv To convert to the shadow format /usr/sbin/pwunconv To convert back to the traditional format

    With shadow passwords, the « /etc/passwd » file contains account information, and looks like this:

    Each field in a passwd entry is separated with «:» colon characters, and are as follows:

    Username, up to 8 characters. Case-sensitive, usually all lowercase

    An «x» in the password field. Passwords are stored in the « /etc/shadow » file.

    Numeric user id. This is assigned by the « adduser » script. Unix uses this field, plus the following group field, to identify which files belong to the user.

    Numeric group id. Red Hat uses group id’s in a fairly unique manner for enhanced file security. Usually the group id will match the user id.

    Full name of user. I’m not sure what the maximum length for this field is, but try to keep it reasonable (under 30 characters).

    User’s home directory. Usually /home/username (eg. /home/smithj). All user’s personal files, web pages, mail forwarding, etc. will be stored here.

    User’s «shell account» . Often set to « /bin/bash » to provide access to the bash shell (my personal favorite shell).

    Perhaps you do not wish to provide shell accounts for your users. You could create a script file called « /bin/sorrysh », for example, that would display some kind of error message and log the user off, and then set this script as their default shell.

    Note: Note: If the account needs to provide «FTP» transfers to update web pages, etc. then the shell account will need to be set to « /bin/bash » — and then special permissions will need to be set up in the user’s home directory to prevent shell logins. See Section 7.1 for details on this.

    The « /etc/shadow » file contains password and account expiration information for users, and looks like this:

    As with the passwd file, each field in the shadow file is also separated with «:» colon characters, and are as follows:

    Username, up to 8 characters. Case-sensitive, usually all lowercase. A direct match to the username in the /etc/passwd file.

    Password, 13 character encrypted. A blank entry (eg. ::) indicates a password is not required to log in (usually a bad idea), and a «*» entry (eg. :*:) indicates the account has been disabled.

    The number of days (since January 1, 1970) since the password was last changed.

    The number of days before password may be changed (0 indicates it may be changed at any time)

    The number of days after which password must be changed (99999 indicates user can keep his or her password unchanged for many, many years)

    The number of days to warn user of an expiring password (7 for a full week)

    The number of days after password expires that account is disabled

    The number of days since January 1, 1970 that an account has been disabled

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