Linux как проверить пароль пользователя

Содержание
  1. Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
  2. Глава 27. Пароли пользователей
  3. Утилита passwd
  4. Файл shadow
  5. Шифрование ключевых фраз с помощью утилиты passwd
  6. Шифрование ключевых фраз с помощью утилиты openssl
  7. Шифрование ключевых фраз с помощью функции crypt
  8. Файл /etc/login.defs
  9. Утилита chage
  10. Блокировка учетных записей
  11. Редактирование локальных файлов
  12. Практическое задание: пароли пользователей
  13. Корректная процедура выполнения практического задания: пароли пользователей
  14. Как проверить пароль в Linux?
  15. 4 ответа
  16. Возможно ли узнать пароль существуещего юзера
  17. Re: Возможно ли узнать пароль существуещего юзера
  18. Re: Возможно ли узнать пароль существуещего юзера
  19. Re: Возможно ли узнать пароль существуещего юзера
  20. Re: Возможно ли узнать пароль существуещего юзера
  21. Re: Возможно ли узнать пароль существуещего юзера
  22. Re: Возможно ли узнать пароль существуещего юзера
  23. Re: Возможно ли узнать пароль существуещего юзера
  24. Re: Возможно ли узнать пароль существуещего юзера
  25. Re: Возможно ли узнать пароль существуещего юзера
  26. Re: Возможно ли узнать пароль существуещего юзера
  27. Re: Возможно ли узнать пароль существуещего юзера
  28. Re: Возможно ли узнать пароль существуещего юзера
  29. Как проверить пароль в 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 .

Читайте также:  Firefox уже запущен windows

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 ).

Читайте также:  Windows 10 отменить автоматическую установку обновлений

10. Используйте команду chsh для вывода списка доступных командных оболочек (данная команда будет работать исключительно в дистрибутивах RHEL/CentOS/Fedora) и сравните вывод с выводом команды cat /etc/shells .

11. Какой параметр утилиты useradd позволяет установить имя домашней директории пользователя?

12. Как можно определить, заблокирован или разблокирован пароль пользователя serena ? Предложите решение на основе утилиты grep , а также решение на основе утилиты passwd .

Источник

Как проверить пароль в Linux?

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

(Мне нужно это для аутентификации веб-пользователей. Я запускаю встроенный linux.)

У меня есть доступ к самому файлу /etc /shadow.

4 ответа

Вы можете легко извлечь зашифрованный пароль с помощью awk. Затем вам нужно извлечь префикс $algorithm$salt$ (при условии, что эта система не использует традиционный DES, который сильно устарел, поскольку он может быть в наши дни жестоко насильственно).

Для проверки пароля основная функция C — crypt , но для доступа к нему нет стандартной команды оболочки.

В командной строке вы можете использовать однострочный Perl для вызова crypt в пароле.

Так как это невозможно сделать в чистых инструментах оболочки, если у вас есть Perl, вы можете сделать все это на Perl. (Или Python, Ruby, . все, что у вас есть, которое может вызвать функцию crypt .) Предупреждение, непроверенный код.

На встроенной системе без Perl я бы использовал небольшую специализированную программу C. Предупреждение, введенное непосредственно в браузер, я даже не пытался скомпилировать. Это призвано проиллюстрировать необходимые шаги, а не как надежную реализацию!

Другой подход заключается в использовании существующей программы, такой как su или login . Фактически, если можно, было бы идеально, если бы веб-приложение выполняло все необходимое, используя su -c somecommand username . Трудность здесь состоит в том, чтобы передать пароль в su ; для этого требуется терминал. Обычный инструмент для эмуляции терминала — ожидать , но это большая зависимость для встроенная система. Кроме того, в то время как su находится в BusyBox, он часто опускается, поскольку для многих его применений двоичный код BusyBox требует, чтобы он был установлен в setuid root. Тем не менее, если вы можете это сделать, это самый надежный подход с точки зрения безопасности.

Посмотрите на man 5 shadow и man 3 crypt . Из последнего вы можете узнать, что хэши паролей в /etc/shadow имеют следующую форму:

где id определяет тип шифрования и, кроме того, может быть одним из

В зависимости от типа хеша, вам нужно использовать соответствующую функцию /инструмент для генерации и проверки пароля «вручную». Если система содержит программу mkpasswd , вы можете использовать ее , как предлагается здесь . (Вы берете соль из теневого файла, если это не было очевидно.) Например, с помощью md5 пароли:

создаст строку, которая должна соответствовать записи /etc/shadow .

Источник

Возможно ли узнать пароль существуещего юзера

Не дать новый. Именно узнать. Т.к. не хочется потом обзванивать и раздавать все заново. Не подскажете, как это можно сделать и можно ли вообще? FC3

Re: Возможно ли узнать пароль существуещего юзера

а зачем?
Может твои задачи иначе решаются.

P.S. Узнать нельзя, можно подобрать, подсмотреть, подслушать, спросить юзера.

Re: Возможно ли узнать пароль существуещего юзера

Можно поробовать программы подбора паролей. Но если пароль задан грамотно, то подобрать его нереально. Короче говоря, ставь новый пароль.

Re: Возможно ли узнать пароль существуещего юзера

John the ripper ищите.

Re: Возможно ли узнать пароль существуещего юзера

Блин, но ведь система с чем то сверяется при логине, так? Значит можно начти это что-то, и как-то оттуда выгрызть. Только как.

Читайте также:  Windows server мы linux servers

Re: Возможно ли узнать пароль существуещего юзера

В системе хранится не пароль, а его кэш (md5). Недавно ссылка проскакивала про нахождение его коллизии. Так что удачи

Re: Возможно ли узнать пароль существуещего юзера

> система с чем то сверяется при логине
Система кодирует то, что написал, с тем что уже закодировано!

Re: Возможно ли узнать пароль существуещего юзера

И никакой возможности раскодировать. Ну, тупой я, тупой))

Re: Возможно ли узнать пароль существуещего юзера

>как это можно сделать

Re: Возможно ли узнать пароль существуещего юзера

> И никакой возможности раскодировать?
Можно только кодировать пароли и сравнивать хеши!

Re: Возможно ли узнать пароль существуещего юзера

>Не дать новый. Именно узнать. Т.к. не хочется потом обзванивать и раздавать все заново.

Ты так и не сказал зачем тебе это надо?
Может твои задачи иначе решаются.

Re: Возможно ли узнать пароль существуещего юзера

Очевидно, придется решать их иначе/ Что-то кстати удалось взломать с помощью john:)

Re: Возможно ли узнать пароль существуещего юзера

Есть pop3, ftp, telnet, . — сниффером собираешь пароли.

Источник

Как проверить пароль в Linux?

Я хочу проверить в командной строке linux, совпадает ли заданный пароль открытого текста с зашифрованным паролем в / etc / shadow

(Мне нужно это для аутентификации пользователей сети. Я использую встроенный Linux.)

У меня есть доступ к самому файлу / etc / shadow.

Вы можете легко извлечь зашифрованный пароль с помощью awk. Затем вам нужно извлечь префикс $algorithm$salt$ (при условии, что в этой системе не используется традиционный DES, что сильно не рекомендуется, потому что в наши дни его можно перебрать).

Для проверки пароля базовая функция C есть crypt , но нет стандартной команды оболочки для доступа к ней.

В командной строке вы можете использовать однострочник Perl для вызова crypt пароля.

Так как это не может быть сделано в чисто инструментальных оболочках, если у вас есть доступный Perl, вы можете сделать все это в Perl. (Или Python, Ruby, . все, что у вас есть, которое может вызвать crypt функцию.) Предупреждение, непроверенный код.

На встроенной системе без Perl я бы использовал небольшую специализированную C-программу. Предупреждение, набранное прямо в браузере, я даже не пытался скомпилировать. Это предназначено для иллюстрации необходимых шагов, а не как надежная реализация!

Другой подход заключается в использовании существующей программы, такой как su или login . На самом деле, если вы можете, было бы идеально устроить так, чтобы веб-приложение могло выполнять все, что ему нужно su -c somecommand username . Трудность здесь заключается в том, чтобы ввести пароль su ; это требует терминала. Обычный инструмент для эмуляции терминала — ожидаемый , но это большая зависимость для встроенной системы. Кроме того, хотя он su находится в BusyBox, он часто опускается, поскольку для многих его применений требуется, чтобы двоичный файл BusyBox был установлен как root. Тем не менее, если вы можете сделать это, это самый надежный подход с точки зрения безопасности.

Посмотрите на man 5 shadow и man 3 crypt . Из последнего вы можете узнать, что хеши паролей /etc/shadow имеют следующую форму:

где id определяет тип шифрования и, читая далее, может быть одним из

В зависимости от типа хэша вам нужно использовать соответствующую функцию / инструмент для генерации и проверки пароля «вручную». Если система содержит mkpasswd программу, вы можете использовать ее, как предложено здесь . (Вы берете соль из файла теней, если это не было очевидно.) Например, с md5 паролями:

сгенерирует строку, которая должна соответствовать /etc/shadow записи.

Источник

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