Shadow 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 хранятся записи о зашифрованных паролях пользователей, а также другая информация, связанная с паролями.

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

    Источник

    Linux Shadow file explained in detail

    surendra : $6$1aEszVo.gsdPEr : 15107 : 22 : 99999 : 207 : 205 : 105345 :
    1 2 3 4 5 6 7 8 9

    1) User login name: This field gives details for user-login

    2) Encrypted password: The password is in encryption form8) No of days from Jan 1, 1970 the account was disabled: and it’s MD5 encrypted form. This field may contain following things

    • !! or ! indicates account is present but there is no password set for it. So user can not login if second field set to this values
    • :*: indicates the account was disable.
    • :: indicates that user can login without password. in other words we can say password removed
    • $6$b93VXzq0$kI55QxFMpXv This example encrypted form indicates password is present and encrypted.

    3) Last password change: Indicates when was the last time the password changed?. This is the number of days from 1st Jan 1970. To get this number to convert to human readable format please have a look in to our other post how to convert this number.

    4) Minimum days need for a password change: This is to make user to change the password only after some days. Suppose if this value is “0”, he can change the password at any time. If this value is 15, then the user can change the password only after 15 days. What will happen if he tried to change the password today it self tho this value set to 15?

    Читайте также:  Методы управления доступом windows

    We will get following error

    5) Maximum days the password is valid: This is the days after which the password should change. If the value is 99999 then you no need to change the password, if this value is set to some 45 then you have to change the password after 45 days completion.

    6) Password expiry advanced warning days: This value is to warn the user that his password is going to expire in so and so days.. For example if this value is set to 10 days, then system will prompt to the user at every login that his password will expire in 10 days.

    7) No of days after password expired, account was disabled: This is to block unwanted access to an account once it’s password was expired.

    8) No of days from Jan 1, 1970 the account was disabled: This is to show when the account was disabled. Do you want to find all the accounts which were disabled? Click here

    9) Reserved for future purpose:Not used

    Some FAQ’s:

    How can I get encrypted password in /etc/passwd back from /etc/shadow file?

    use pwunconv command to revert back your encrypted passwords stored in shadow file.

    Why we need shadow file?

    As /etc/passwd file is world readable and can seen by any one. This is security loophole, so Linux machines moved encrypted password from /etc/passwd to /etc/shadow file. So even encrypted password is not seen by any normal user expect superuser(root).

    Источник

    Понимание файла /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 дней после истечения срока действия пароля, учетная запись будет отключена.
    • Нет срока действия аккаунта.
    Читайте также:  Графический драйвер amd для windows 10 видеокарта

    Вывод

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

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

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

    Источник

    Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux

    Навигация по основам Linux от основателя Gentoo:
    Часть I:
    Часть II:
    Часть III

    Управление аккаунтами в Linux

    Знакомьтесь, /etc/passwd

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

    drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash

    Как видите, в одной строке не так уж много информации. Каждая из них содержит несколько полей, разделённых «:». Первое поле отвечает за имя пользователя (drobbins), второе поле содержит «x». На устаревших Linux-системах второе поле содержало зашифрованных пароль для аутентификации, но фактически, сейчас все Linux-системы хранят эту информацию в другом файле. Третье поле отвечает за числовой пользовательский идентификатор, связанный с конкретным пользователем, а четвертое поле ассоциирует этого пользователя с конкретной группой; скоро мы увидим, где определена группа 1000. Пятое поле содержит текстовое описание аккаунта, в нашем случае это имя пользователя. Шестое поле определяет домашний каталог пользователя, седьмое — устанавливает стартовую оболочку пользователя, которая будет автоматически запускаться когда пользователь входит в систему.

    /etc/passwd, советы и хитрости

    Вы вероятно заметили, что в системе намного больше пользовательских аккаунтов, которые определены в /etc/passwd, чем тех, которые логинятся в систему на самом деле. Всё это потому, что различные компоненты Linux используют некоторые аккаунты для повышения безопасности. Обычно, такие системные аккаунты имеют идентификатор (uid) меньший 100, и у многих из них в качестве стартовой оболочки установлена /bin/false. Так как эта программа ничего не делает, кроме как выходит и возвращает код ошибки, это эффективно препятствует использованию этих аккаунтов в качестве обычных аккаунтов для логина — т.е. они предназначены только для внутрисистемного пользования.

    /etc/shadow

    Итак, сами пользовательские аккаунты определены в /etc/passwd. Системы Linux вдобавок к /etc/passwd содержат его файл-компаньон /etc/shadow. Он, в отличие от /etc/passwd, доступен для чтения только суперпользователю и содержит зашифрованную информацию о паролях. Взглянем на образец строки из /etc/shadow:

    drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

    Каждая строка определяет информацию о пароле конкретного аккаунта, поля в ней разделены знаком «:». Первое поле определяет конкретный пользовательский аккаунт, которому соответствует данная «теневая» запись. Во втором поле содержится зашифрованный пароль. Оставшиеся поля описаны в таблице ниже:

    поле 3 — количество дней с 01.01.1970 до момента, когда пароль был изменен
    поле 4 — количество дней до того, как будет разрешено сменить пароль («0» — «менять в любое время»)
    поле 5 — количество дней до того, как система заставит пользователя сменить пароль («-1» — «никогда»)
    поле 6 — количество дней до истечения срока действия пароля, когда пользователь получит предупреждение об этом («-1» — «не предупреждать»)
    поле 7 — количество дней после истечения срока действия пароля, по прошествии которых аккаунт будет автоматически отключен системой («-1» — «не отключать»)
    поле 8 — количество дней, прошедшее с момента отключения этого аккаунта («-1» — «этот аккаунт включен»)
    поле 9 — зарезервировано для будущего использования

    /etc/group

    Теперь взглянем на файл /etc/group, который определяет группы в системе Linux. Вот примерная строка из него:

    drobbins:x:1000:

    Формат полей файла /etc/group следующий: первое поле определяет имя группы, второе поле — это поле остаточного пароля, которое сейчас просто зарезервировано x, и третье поле определяет числовой идентификатор для конкретной группы. Четвертое поле (которое пусто в примере выше) определяет всех членов группы.

    Вспомните, что в нашем образце строки из /etc/passwd есть «ссылка» на группу с идентификатором 1000. Мы сможем поместить пользователя drobbins в группу drobbins, даже несмотря на отсутствие имени drobbins в четвертом поле /etc/group.

    Примечания о группах

    Замечание насчет соответствия пользователей с группами: на некоторых системах каждый новый логин-аккаунт связан с группой, имеющей то же имя (и обычно идентификатор). На других системах все логин-аккаунты будут принадлежать к одной группе пользователей. Какой из этих методов выбрать зависит от вас. Создание соответствующей группы для каждого пользователя имеет преимущество в том, что позволяет им более легко контролировать их собственный доступ просто помещая доверенных друзей в свою личную группу.

    Ручное создание пользователей и групп

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

    # echo $EDITOR
    vim

    Если это не так, то вы можете установить переменную EDITOR, набрав что-то, вроде:

    Читайте также:  Приложения процессы службы windows

    # export EDITOR=/usr/bin/emacs
    # vipw

    Теперь ваш редактор должен быть запущен с уже загруженным /etc/passwd экране. Изменяя системные файлы passwd и group обязательно используйте команды vipw и vigr. Они имеют повышенные меры предосторожности, оберегая ваши файлы от участи быть испорченными.

    Редактирование /etc/passwd

    Итак, у вас уже есть готовый файл /etc/passwd, добавьте теперь следующую строку:

    testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false

    Мы только что добавили пользователя «testuser» с идентификатором 3000. Мы определили его в группу с таким же идентификатором, которую еще не создали. Но мы можем добавить его к уже имеющейся группе пользователей, если нужно. У этого пользователя установлен комментарий, гласящий «LPI tutorial test user», домашний каталог установлен как «/home/testuser», а командная оболочка — как «/bin/false», в целях безопасности. Если бы мы создавали не тестовый аккаунт, мы бы установили командную оболочку как «/bin/bash». Отлично, теперь сохраните файл и выходите.

    Редактирование /etc/shadow

    Сейчас нам нужно добавить запись в /etc/shadow для этого пользователя. Для этого наберите vipw -s. Вас как всегда встретит ваш любимый редактор в котором уже открыт файл /etc/shadow. Теперь скопируйте строку существующего пользовательского аккаунта (того, у которого есть пароль и запись которого длиннее стандартных записей системных аккаунтов)

    drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

    Замените имя пользователя в скопированной строке на имя вашего пользователя и убедитесь что все поля (особенно старый пароль) установлены как вам надо:

    testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

    Теперь сохраните и закройте.

    Установка пароля

    Вы вернетесь к командной строке. Теперь, самое время задать пароль для вашего нового пользователя.

    # passwd testuser
    Enter new UNIX password: (enter a password for testuser)
    Retype new UNIX password: (enter testuser’s new password again)

    Редактирование /etc/group

    Теперь /etc/passwd и /etc/shadow готовы и самое время как следует настроить /etc/group. Для этого, наберите:

    # vigr

    Перед вами появится ваш /etc/group файл, готовый для редактирования. Итак, если ранее вы решили добавить созданного пользователя к уже имеющейся группе, то вам не понадобиться создавать новую группу в /etc/groups. Если это не так, вам нужно добавить новую группу для этого пользователя, введите следующую строку:

    testuser:x:3000:

    Теперь сохраните и закройте.

    Создание домашней директории

    Мы почти закончили. Выполните следующие команды для создания домашнего каталога testuser’а:

    # cd /home
    # mkdir testuser
    # chown testuser:testuser testuser
    # chmod o-rwx testuser

    Наш каталог пользователя на месте и аккаунт готов к использованию. Уже почти готово. Если вы собираетесь использовать этот аккаунт, вам надо будет воспользоваться vipw для смены стартовой оболочки на /bin/bash, так, чтобы пользователь смог войти.

    Утилиты администрирования учетных записей

    Вы уже знаете как вручную добавить новые аккаунты и группы, давайте же теперь рассмотрим различные, экономящие время, утилиты для управления аккаунтами под Linux. Из-за некоторых ограничений мы не будем рассматривать множество деталей, описывающих эти команды. Запомните — вы всегда можете получить больше информации о какой-либо команде если посмотрите её man-страничку. Если вы планируете сдавать LPIC 101 экзамен, вам следует провести побольше времени на ознакомление с каждой из этих команд.

    newgrp — По умолчанию, любой файл, который создает пользователь, сразу же присваивается к группе, в которой он состоит, определенной в /etc/passwd. Если пользователь принадлежит к другим группам, он или она может набрать newgrp thisgroup чтобы стать членом группы thisgroup. Затем, любые новые созданные файлы унаследуют членство в thisgroup.
    chage — Команда chage используется для просмотра и изменения настроек срока действия паролей, сохраненных в /etc/shadow.
    gpasswd — Основная утилита управления группами
    groupadd/groupdel/groupmod — Используются для добавления/удаления/изменения групп в /etc/group
    useradd/userdel/usermod — Используются для добавления/удаления/изменения пользователей в /etc/passwd. Эти команды могут выполнять и другие полезные функции. Смотрите man для получения дополнительной информации.
    pwconv/grpconv — Используются для преобразования passwd и group файлов старого образца в новые shadow passwords. Фактически, все Linux системы уже используют shadow passwords, так что вам никогда не придется использовать эти команды.

    Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо следующим benoid-юзерам (в алфавитном порядке): kindacute, nekjine, Rich. А также инициатору всей серии переводов, VBart.

    Об авторах

    Daniel Robbins

    Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

    Chris Houser

    Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

    Источник

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