- Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
- Глава 27. Пароли пользователей
- Утилита passwd
- Файл shadow
- Шифрование ключевых фраз с помощью утилиты passwd
- Шифрование ключевых фраз с помощью утилиты openssl
- Шифрование ключевых фраз с помощью функции crypt
- Файл /etc/login.defs
- Утилита chage
- Блокировка учетных записей
- Редактирование локальных файлов
- Практическое задание: пароли пользователей
- Корректная процедура выполнения практического задания: пароли пользователей
- linux не предлагает ввести новый пароль по истечении срока старого
- Отключение срока действия пароля в Linux
- 2 ответа 2
- Команда chage в Linux
- Синтаксис
- Примеры
- Как заблокировать учетную запись
- Заключение
Фундаментальные основы 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 .
Источник
linux не предлагает ввести новый пароль по истечении срока старого
Доброго времени суток! При создании нового пользователя ограничиваю срок действия пароля командой chage -I 0 -M 90 -W 14 user. По идее после окончания срока действия пароля при входе под этим пользователем система должна предлагать ввести новый пароль, но когда я захожу под этим пользователем по ssh система просто спрашивает пароль, я ввожу (старый) пароль и соединение по ssh разрывается, putty выдает сообщение «Server unexpectedly close network connection». Если ввести не старый, а просто какой-нибудь заведомо неправильный пароль, то в консоли пишется «Access denied» и предлагается вновь ввести пароль. К сожалению, зайти на сервер локально и посмотреть, что при этом происходит нет возможности.
Подскажите, пожалуйста, почему так происходит, можно ли это как то исправить и как после этого разблокировать пользователя.
Вы хотя бы ‘man chage’ читали ? Т.е. вы сказали, что максимальный срок действия пароля 90 дней, за 14 дней до истечения срока будет выводиться предупреждение о том, что срок пароля истекает, за это время пользователь САМ должен сменит свой пароль, т.е. дать команду:
Если он его не сменил, то вход запрещается. Теперь можете зайти под root и отключить блокировку пользователя:
админ должен продлять/менять пароль пользователя, иначе опция бессмыслена.
Читали, но видимо, плохо) Спасибо за помощь!
А теоретически существует ли способ сделать так, чтобы система предлагала ввод нового пароля после окончания старого? может, для этого какие-то другие команды нужно использовать
Т.е. предупреждения о том, что через столько-то дней учётная запись будет заблокирована, если вы не смените пароль, вам мало ?
Ну пишите какой-либо скрипт, который посредством ‘chage -l $USERNAME’ будет анализировать сколько осталось времени до истечения срока действия пароля и предлагать его сменить.
После чего можете поместить его в
Скорее всего хотелку со сменой пароля можно реализовать через PAM, но я затрудняюсь сказать какие конкретно опции каких pam-модулей надо курить.
Т.е. предупреждения о том, что через столько-то дней учётная запись будет заблокирована, если вы не смените пароль, вам мало ?
ЕМНИП, Винда обычно делает так: если у тебя истёк срок действия пароля, то ты зайти в систему ещё можешь, но при входе обязан немедленно сменить пароль.
Это не винда. Здесь другое поведение, почитайте ‘man chage’, хотя бы сокращённую:
Здесь только писать скрипт, например не выставлять ключ ‘-I’, что бы учётка не блокировалась, а в .bashrc написать обработчик, который при входе в систему обрабатывает вывод ‘chage -l’ и запускает ‘passwd’ по истечению срока действия пароля.
Ну либо разбираться с pam, но я не нашёл такого модуля, так что в таком случае нужно писать свой.
Источник
Отключение срока действия пароля в Linux
Я вижу много документов, предлагающих использовать chage в Debian и Ubuntu, но apt-get update && apt-get install chage не устанавливает пакет. Например,
Я обнаружил, что мне нужно отредактировать /etc/shadow . Как именно мне нужно отредактировать root строку ниже, чтобы мой Linux не просил меня менять пароль при каждом входе в систему?
Я отредактировал корневую строку, как предложил deong
Он по-прежнему запрашивает пароль при входе в систему.
Что мне нужно отредактировать, чтобы удалить password must be changed ? Я также сделал chage -I -1 -m 0 -M 99999 -E -1 root , но это не помогло.
2 ответа 2
описывает формат этого файла. Цитируя оттуда, пятое поле — максимальный срок действия пароля.
максимальный срок действия пароля. Максимальный срок действия пароля — это количество дней, после которых пользователь должен будет сменить свой пароль.
По истечении этого количества дней пароль может быть действительным. Пользователю нужно будет изменить свой пароль при следующем входе в систему.
Пустое поле означает, что нет максимального срока действия пароля, периода предупреждения о пароле и периода бездействия пароля (см. Ниже).
Если максимальный срок действия пароля меньше минимального срока действия пароля, пользователь не может изменить свой пароль.
В вашем случае вы уже нажали на триггер, поэтому вам также нужно избавиться от приглашения немедленно изменить пароль при следующем входе в систему. Снова обращаясь к странице руководства .
дата последней смены пароля Дата последней смены пароля, выраженная в количестве дней с 1 января 1970 года.
Значение 0 имеет особое значение: пользователь должен изменить свой пароль при следующем входе в систему.
Пустое поле означает, что функции устаревания пароля отключены.
Поэтому вы должны также удалить ноль из третьего поля. И как только вы отключите это, вам также не понадобится четвертый.
Таким образом, вы должны иметь возможность полностью удалить пятое поле, чтобы добиться того, чего вы хотите. Как в
Тем не менее, я бы вообще не советовал напрямую редактировать такие файлы, если только вы не уверены на 100%, что знаете, что делаете.
Изменить: Кроме того, похоже, что chage является частью пакета passwd в Ubuntu, который я бы предположил, что вы уже установили.
Источник
Команда 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 можно установить оптимальное время смены личных данных. Это не займет много времени, а все необходимые примеры команд описаны в нашем руководстве.
Источник