- Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
- Глава 27. Пароли пользователей
- Утилита passwd
- Файл shadow
- Шифрование ключевых фраз с помощью утилиты passwd
- Шифрование ключевых фраз с помощью утилиты openssl
- Шифрование ключевых фраз с помощью функции crypt
- Файл /etc/login.defs
- Утилита chage
- Блокировка учетных записей
- Редактирование локальных файлов
- Практическое задание: пароли пользователей
- Корректная процедура выполнения практического задания: пароли пользователей
- Команда chage в Linux
- Синтаксис
- Примеры
- Как заблокировать учетную запись
- Заключение
- Русские Блоги
- Как проверить даты истечения срока действия паролей всех пользователей в Linux | Linux China
Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
Глава 27. Пароли пользователей
Данная глава содержит дополнительную информацию о паролях локальных пользователей.
В главе подробно описаны три метода установки паролей; с использованием утилиты passwd , с использованием реализации алгоритма шифрования passwd из библиотеки openssl , а также с использованием функции crypt в программе на языке C.
Кроме того, в данной главе обсуждаются параметры паролей и методики отключения, аннулирования или блокировки учетных записей пользователей.
Утилита passwd
Файл shadow
Файл /etc/shadow содержит таблицу с девятью разделенными двоеточиями столбцами. Эти девять столбцов (слева направо) содержат имя пользователя, зашифрованный пароль, время последнего изменения пароля (первый день соответствует 1 января 1970 года), количество дней, в течение которых пароль должен оставаться неизменным, день истечения срока действия пароля, количество дней перед истечением срока действия пароля, в течение которых должно выводиться предупреждение, количество дней после истечения срока действия пароля, по прошествии которых учетная запись должна быть отключена, а также день, когда учетная запись была отключена (также с начала 1970 года). Последнее поле пока не имеет значения.
Все пароли в примере выше являются хэшами фразы hunter2 .
Шифрование ключевых фраз с помощью утилиты passwd
Шифрование ключевых фраз с помощью утилиты openssl
Другой способ создания учетных записей пользователей с паролями заключается в использовании параметра -p утилиты useradd, но в случае использования данного параметра утилите необходимо передавать уже зашифрованный пароль. Вы можете зашифровать пароль с помощью команды openssl passwd .
Помните о том, что после выполнения данной команды ваш пароль в открытом виде будет сохранен в файле истории команд командной оболочки!
Шифрование ключевых фраз с помощью функции crypt
Обратили ли вы внимание на то, что первые два символа зашифрованного пароля являются значением salt ?
Файл /etc/login.defs
Утилита chage
Блокировка учетных записей
Пароли из файла /etc/shadow не могут начинаться с символа восклицательного знака. Если второе поле в строке из файла /etc/passwd начинается с символа восклицательного знака, пароль не может использоваться.
Использование данной особенности обычно называется блокировкой , деактивацией или отключением пользовательской учетной записи. Помимо текстового редактора vi (или vipw) вы можете использовать утилиту usermod для этой цели.
Следует подходить с осторожностью к работе и учитывать различия параметров интерфейса командной строки утилит passwd , usermod и useradd в различных дистрибутивах Linux. Проверяйте содержимое локальных файлов при использовании таких возможностей, как «деактивация, отключение или блокировка» учетных записей пользователей и их паролей.
Редактирование локальных файлов
Практическое задание: пароли пользователей
1. Установите пароль hunter2 для пользователя serena .
2. Также установите пароль для пользователя venus , после чего заблокируйте учетную запись пользователя venus с помощью утилиты usermod . Проверьте наличие признаков блокировки в файле /etc/shadow до и после осуществления блокировки.
3. Используйте команду passwd -d для деактивации пароля пользователя serena . Проверьте наличие строки для пользователя serena в файле /etc/shadow до и после осуществления деактивации.
4. Каковы различия между операцией блокировки пользовательской учетной записи и операцией деактивации пароля пользовательской учетной записи, которые мы только что осуществляли с помощью команд usermod -L и passwd -d ?
5. Попытайтесь изменить пароль serena на пароль serena as serena.
6. Сделайте так, чтобы пользователь serena был обязан изменять пароль через каждые 10 дней.
7. Сделайте так, чтобы каждый новый пользователь был обязан изменять свой пароль через каждые 10 дней.
8. Воспользуйтесь учетной записью пользователя root для создания резервной копии файла /etc/shadow . Используйте текстовый редактор vi для копирования хэша пароля hunter2 из строки пользователя venus в строку пользователя serena . Может ли после этого пользователь serena войти в систему с паролем hunter2 ?
9. В каких случаях следует использовать утилиту vipw вместо vi ? Какая проблема может возникнуть при использовании текстового редактора vi или vim для редактирования файла паролей?
10. Используйте команду chsh для вывода списка доступных командных оболочек (данная команда будет работать исключительно в дистрибутивах RHEL/CentOS/Fedora) и сравните вывод с выводом команды cat /etc/shells .
11. Какой параметр утилиты useradd позволяет установить имя домашней директории пользователя?
12. Как можно определить, заблокирован или разблокирован пароль пользователя serena ? Предложите решение на основе утилиты grep , а также решение на основе утилиты passwd .
Корректная процедура выполнения практического задания: пароли пользователей
1. Установите пароль hunter2 для пользователя serena .
2. Также установите пароль для пользователя venus , после чего заблокируйте учетную запись пользователя venus с помощью утилиты usermod . Проверьте наличие признаков блокировки в файле /etc/shadow до и после осуществления блокировки.
Обратите внимание на то, что в результате выполнения команды usermod -L перед хэшем пароля добавляется символ восклицательного знака.
3. Используйте команду passwd -d для деактивации пароля пользователя serena . Проверьте наличие строки для пользователя serena в файле /etc/shadow до и после осуществления деактивации.
4. Каковы различия между операцией блокировки пользовательской учетной записи и операцией деактивации пароля пользовательской учетной записи, которые мы только что осуществляли с помощью команд usermod -L и passwd -d ?
Блокировка предотвратит вход пользователя в систему с использованием установленного пароля благодаря добавлению символа ! перед хэшем пароля в файле /etc/shadow .
Деактивация с помощью утилиты passwd приведет к удалению хэша пароля из файла /etc/shadow .
5. Попытайтесь изменить пароль serena на пароль serena as serena.
Войдите в систему с именем пользователя serena , после чего выполните команду: passwd serena . Исполнение команды должно завершиться неудачей!
6. Сделайте так, чтобы пользователь serena был обязан изменять пароль через каждые 10 дней.
7. Сделайте так, чтобы каждый новый пользователь был обязан изменять свой пароль через каждые 10 дней.
8. Воспользуйтесь учетной записью пользователя root для создания резервной копии файла /etc/shadow . Используйте текстовый редактор vi для копирования хэша пароля hunter2 из строки пользователя venus в строку пользователя serena . Может ли после этого пользователь serena войти в систему с паролем hunter2 ?
9. В каких случаях следует использовать утилиту vipw вместо vi ? Какая проблема может возникнуть при использовании текстового редактора vi или vim для редактирования файла паролей?
Утилита vipw выведет предупреждение в том случае, если кто-либо еще в данный момент редактирует данный файл (с помощью утилиты vipw ).
10. Используйте команду chsh для вывода списка доступных командных оболочек (данная команда будет работать исключительно в дистрибутивах RHEL/CentOS/Fedora) и сравните вывод с выводом команды cat /etc/shells .
11. Какой параметр утилиты useradd позволяет установить имя домашней директории пользователя?
12. Как можно определить, заблокирован или разблокирован пароль пользователя serena ? Предложите решение на основе утилиты grep , а также решение на основе утилиты passwd .
Источник
Команда chage в Linux
Чтобы найти или откорректировать данные относительно срока действия пароля пользователя, в Линукс принято использовать специальную команду. Она именуется следующим образом: chage. Функции данной утилиты достаточно обширны.
Например, с помощью chage можно посмотреть дату последней смены пароля или установить новую дату для внесения изменений. Посредством данной команды также можно произвести блокировку учетной записи выбранного юзера системы Linux через заданный промежуток времени.
Синтаксис
Рассмотрим синтаксис команды:
- -d — установить дату изменения пароля;
- -E — установить дату, срок действия учетной записи;
- -h или —help — справочная информация;
- -I — сделать пароль неактивным, после истечения срока действия;
- -l или —list — показать информацию о аккаунте.
- -M — максимальное количество дней до ввода пароля.
Примеры
Среди владельцев дистрибутивов Линукс очень много пользователей, не успевших привыкнуть к новым инструментам управления системой. В сети Интернет часто встречаются повторяющиеся вопросы пользователей относительно работы с командой chage и многими другими инструментами управления Линукс. А вот подробных описаний оказалось недостаточно.
Для первого примера посмотрим справочную информацию, для этого введем название утилиты с параметром —help.
Чтобы получить актуальные данные об истечении срока действия пароля конкретного пользователя системы, необходимо воспользоваться терминалом. Нужная информация появится на экране благодаря применению специальной опции:
Здесь root имя пользователя, вместо него укажите любой существующий логин.
Чтобы изменить дату истечения срока действия пароля, необходимо задать аналогичную команду, но только с применением опции -M. Данная опция отвечает за указание максимального срока действия пароля юзера системы.
chage -M 100 root
Здесь 100 — количество дней.
ВАЖНО! Пользователь имеет возможность внести подобные коррективы только в том случае, если он имеет Root права.
Чтобы настроить последнюю дату изменения личных данных (в данном случае имеется в виду пароль пользователя), принято использовать опцию -D.
chage -d 1000 root
Если пользователю необходимо установить определенное количество дней перед корректировкой личных данных, он также может воспользоваться командой chage. Разумеется, на этот раз понадобится другая опция.
chage -W 100 root
Как результат, юзер системы Linux получит предупреждение о смене пароля заранее (за десять дней до истечения срока).
Как заблокировать учетную запись
Для этой цели применяется инструмент chage с добавлением специальной опции -E.
В строке терминала следует указать следующее:
сhage -E 2021-01-05 root
При наступлении указанного срока учетная запись заданного пользователя будет автоматически заблокирована.
Заключение
Инструмент chage незаменим в управлении системой Линукс. Помимо всех выше перечисленных ситуаций, в которых принято применять утилиту, существует еще одна весомая причина использовать chage: данная команда предоставляет ограниченный срок допуска нового пользователя в систему. Юзер получает свои личные данные для входа в Линукс, однако по истечению указанного срока его учетная запись удаляется. А значит, доступ блокируется. Это действительно удобно и безопасно.
А чтобы защитить свою учетную запись, рекомендуется периодически менять пароль для входа в систему. С помощью команды chage можно установить оптимальное время смены личных данных. Это не займет много времени, а все необходимые примеры команд описаны в нашем руководстве.
Источник
Русские Блоги
Как проверить даты истечения срока действия паролей всех пользователей в Linux | Linux China
Если вы редко используете свою учетную запись, вы можете быть заблокированы из-за просроченного пароля. Во многих случаях это может произойти в учетной записи службы, которая не требует пароля для входа в систему, потому что никто этого не заметит.
Если тыПолитика паролей включена в Linux. Пароль необходимо изменить до истечения срока его действия, и вы получите уведомление, когда войдете в систему.
Если вы редко используете свою учетную запись, вы можете быть заблокированы из-за просроченного пароля. Во многих случаях это может произойти в учетной записи службы, которая не требует пароля для входа в систему, потому что никто этого не заметит.
Это приведет к остановке cronjob / crontab, настроенного на сервере.
Если да, то как исправить эту ситуацию.
Вы можете написать сценарий оболочки, чтобы получать уведомления об этом, мы писали об этом некоторое время назад.
В нем будет указано количество дней, но цель этой статьи — дать вам фактическую дату в терминале.
Этого можно добиться с помощью команды chage.
Что такое команда изменения?
представитель Chage Изменить ограничение по времени (change age) . Он изменяет информацию об истечении срока действия пароля пользователя.
Команда chage может изменить количество дней между двумя изменениями пароля и датой последнего изменения пароля.
Система использует эту информацию, чтобы определить, когда пользователь должен изменить пароль.
Он также позволяет пользователям выполнять другие функции, такие как установка даты истечения срока действия учетной записи, установка недействительного пароля после истечения срока действия, отображение информации о устаревании учетной записи, установка минимального и максимального количества дней до смены пароля и установка дней предупреждения об истечении срока действия.
1) Как проверить срок действия пароля конкретного пользователя в Linux
Если вы хотите проверить дату истечения срока действия пароля определенного пользователя в Linux, используйте следующую команду.
2) Как проверить срок действия пароля у всех пользователей Linux
Вы можете использовать команду chage непосредственно для одного пользователя, но она может оказаться неэффективной, если вы используете ее для нескольких пользователей.
Для этого вам нужно написать небольшой сценарий оболочки. Следующий сценарий оболочки может перечислить всех пользователей, добавленных в систему, включая пользователей системы.
Вы получите результат, аналогичный приведенному ниже, но имя пользователя может быть другим.
3) Как проверить срок действия пароля у всех пользователей, кроме системных пользователей Linux
Следующий сценарий оболочки отобразит список пользователей с датами истечения срока действия.
Вы получите результат, аналогичный приведенному ниже, но имя пользователя может быть другим.
Автор: Магеш Марутамуту темы: lujun9972 Переводчик: geekpi корректура: wxy
Эта статья изначально была составлена LCTT и отмечена Linux China.
Источник