Разблокировка учетной записи Linux

Обновлено: 21.11.2024

Как заблокировать учетную запись пользователя в Linux? Что еще более важно, как разблокировать пользователя в Linux? Узнайте о различных способах блокировки и разблокировки пользователей в командной строке Linux.

3 способа блокировки и разблокировки учетных записей пользователей в Linux

Может быть несколько причин, по которым вы захотите отключить пользователя в своей многопользовательской среде Linux. Возможно, сотрудник уволился из организации и вместо полного удаления пользователя заблокировал аккаунт для архивных целей.

В этом руководстве я покажу вам три способа блокировки пользователя в командной строке Linux. Я также расскажу, как разблокировать пользователя.

Способ 1: блокировка и разблокировка пользователей с помощью команды passwd

Команда passwd в Linux работает с паролями учетной записи пользователя. Вы также можете использовать эту команду для блокировки учетной записи пользователя.

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

Чтобы заблокировать пользователя с помощью команды passwd, вы можете использовать параметр -l или –lock следующим образом:

Проверьте статус пользователя с помощью команды passwd

Вы можете узнать, заблокирован или разблокирован пользователь, используя параметр -S или –status команды passwd.

пароль -S имя_пользователя

Посмотрите на второе поле в выходных данных. Вот что это значит:

– P или PS: установлен пароль (пользователь разблокирован)
– L или LK: пользователь заблокирован
– N или NP: пользователю не требуется пароль

Вот пример вывода команды passwd:

стандарт P 14.10.2019 0 99999 7 -1

Чтобы разблокировать пользователя с помощью команды passwd, вы можете использовать параметр -u или –unlock:

В Ubuntu вы увидите такой вывод как для блокировки, так и для разблокировки пользователя:

А как насчет входа через SSH?

Существует серьезная проблема с такой блокировкой пользователей. Поскольку он работает только с файлом /etc/passwd, заблокированный пользователь по-прежнему сможет войти в систему с помощью ключей SSH (если установлен вход с помощью ключа SSH). В следующем разделе я покажу вам, как с этим справиться.

Метод 2: блокировка и разблокировка пользователей с помощью команды usermod

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

Чтобы заблокировать пользователя, вы можете использовать параметр -L следующим образом:

Чтобы разблокировать пользователя, вы можете использовать параметр -U:

Как проверить, заблокирован ли пользователь? Команда usermod также работает с файлом /etc/passwd, поэтому вы можете использовать команду passwd -S user_name для проверки статуса пользователя.

Но usermod также работает с файлом /etc/passwd, так что это означает, что заблокированный пользователь все еще может войти в систему с помощью ключей SSH, верно? Вот так. Но есть способы решить эту проблему.

Например, вы можете изменить оболочку пользователя на nologin, и это не позволит пользователю войти в оболочку.

Еще один способ – заблокировать пользователя и указать дату истечения срока действия в прошлом. Что он делает, так это отключает учетную запись в прошедшую дату, а затем блокирует ее.

Убедитесь, что прошедшая дата находится между 1970-01-02 и текущей датой.

Вы можете отменить это с помощью этой команды:

Существует аналогичный способ блокировки пользователя в Linux с помощью команды chage. Давайте посмотрим на это в следующем разделе.

Способ 3. Блокировка и разблокировка пользователей с помощью команды chage

Команда chage используется для изменения информации об истечении срока действия пароля пользователя. Его можно использовать для автоматической блокировки неактивного пользователя после определенного количества дней бездействия.

В основном то, что вы делали с командой usermod в предыдущем разделе, может быть достигнуто с помощью команды chage следующим образом:

По сути, вы установили дату истечения срока действия 1970-01-02. Вы можете увидеть подробности следующим образом:

Вы можете удалить дату истечения срока действия и тем самым разблокировать пользователя следующим образом:

В конце…

Как всегда, есть несколько способов выполнить задачу в командной строке Linux. Я показал здесь три способа блокировки и разблокировки пользователей в Linux. Вы знаете лучший способ или у вас есть рекомендации по блокировке пользователей? Поделитесь им в разделе комментариев.

Возможно несколько ситуаций, в которых ваша учетная запись пользователя Linux может быть заблокирована. Вот некоторые из возможных сценариев:

  • Пароль явно заблокирован администратором
  • Аккаунт явно заблокирован администратором
  • Пароль никогда не назначался, поэтому вход невозможен.
  • Несколько неудачных попыток входа в систему (контролируется pam_tally2 или pam_faillock)

Мы рассмотрим вышеупомянутые сценарии и поделимся способами разблокировки учетной записи пользователя Linux в такой ситуации.

В этой статье предполагается, что один из пользователей вашей среды Linux заблокирован, и у вас есть доступ на уровне root к соответствующему серверу Linux либо через sudo, su, либо через прямой вход пользователя root.Если вы застряли в ситуации, когда у вас нет такого доступа, вы можете использовать поле для комментариев, чтобы предоставить мне информацию о вашей среде, и я могу помочь вам разблокировать вашу учетную запись пользователя в соответствии с вашими требованиями.

1. Разблокировать учетную запись пользователя, если пароль никогда не назначался

Это не типичный сценарий блокировки пользователя. Но это определенно один из возможных вариантов использования. Много раз администратор создает пользователя, но забывает назначить пароль. В таком случае, когда соответствующий пользователь пытается войти в систему, он может получить сообщение «Отказано в доступе», а журнал может содержать «Неверный пароль для XXXX».

Сначала давайте проверим, заблокирован ли пароль для этого пользователя:

Да, как и ожидалось, пароль учетной записи пользователя заблокирован. Мы можем попытаться разблокировать его с помощью команды passwd --unlock:

Это означает, что в настоящее время пароль пользователя пуст? Что, скорее всего, возможно, когда пароль пользователя не установлен. Поэтому мы подтвердим это, проверив содержимое этого пользователя в файле /etc/shadow:

Если вы знаете о другом поле файла /etc/shadow, то вам следует знать, что второе поле содержит зашифрованный пароль. В нашем случае второе поле для пользователя1 содержит два восклицательных знака ( !! ) «ТОЛЬКО», что означает, что пароль для этого пользователя никогда не устанавливался.

Например, вот фрагмент вывода для пользователя root, где видно, что второе поле содержит зашифрованный пароль:

Поэтому в таком случае разблокировать нечего, просто назначьте пароль этому пользователю с помощью

Например, я назначу пароль для пользователя1:

и теперь я смогу войти под этим пользователем:

2. Разблокировать учетную запись пользователя, если пароль заблокирован

Мы также можем заблокировать учетную запись пользователя, заблокировав пароль пользователя с помощью команды passwd. Например, здесь я заблокировал пароль user1:

Как видно из справочной страницы passwd, пароль заблокирован, но пользователь по-прежнему может войти в систему, используя другие средства, такие как аутентификация с открытым ключом.

Чтобы проверить, заблокирован ли пароль учетной записи пользователя:

Вы также можете проверить запись пользователя в файле /etc/shadow:

Как видите, у нас есть два дополнительных восклицательных знака в поле пароля. Но результат отличается от сценария 1, который мы обсуждали выше. Здесь у нас есть зашифрованный пароль (поэтому пароль не пустой), но поскольку зашифрованный пароль был изменен, он больше не распознается, поэтому пользователь не может войти в систему.

Чтобы разблокировать пароль пользователя, нам нужно использовать аргумент --unlock с командой passwd:

Или вы можете просто удалить эти восклицательные знаки из файла /etc/shadow для пользователя 1, и это также должно разблокировать учетную запись пользователя:

3. Разблокировать учетную запись пользователя, когда учетная запись заблокирована с помощью usermod

Мы можем использовать следующую команду usermod для блокировки пароля любой учетной записи пользователя Linux:

Эта опция аналогична passwd --lock, так как приведенная выше команда добавит один восклицательный знак во второе поле файла /etc/shadow для соответствующего пользователя:

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

То же самое можно проверить с помощью команды passwd:

Чтобы разблокировать такую ​​учетную запись пользователя в Linux, просто используйте --unlock с usermod с именем пользователя:

ИЛИ просто вручную удалите этот восклицательный знак из записи user1 в файле /etc/shadow и повторно проверьте статус учетной записи пользователя:

4. Разблокировать учетную запись пользователя по истечении срока действия учетной записи

Возможно также, что срок действия вашей учетной записи пользователя в Linux истек, из-за чего вы не можете войти в систему. В таком случае, когда вы пытаетесь войти в систему, вы можете получить следующее сообщение в /var/log/secure :

Поэтому сначала проверьте дату истечения срока действия пользователя с помощью команды chage:

Как видите, срок действия user1 истек, поэтому совершенно очевидно, что учетная запись пользователя будет заблокирована. Чтобы разблокировать такую ​​учетную запись пользователя, вам просто нужно изменить дату истечения срока действия этого пользователя на дату из будущего.

Например, для установки срока действия учетной записи через 180 дней можно использовать следующее:

Теперь проверьте дату истечения срока действия пользователя:

5. Разблокировать учетную запись пользователя, если она заблокирована после нескольких неудачных попыток входа

Теперь это более реалистичный и распространенный сценарий, когда учетная запись пользователя может быть заблокирована. Итак, вы забыли пароль и продолжали попытки, пока, наконец, не поняли: Вот черт! мой аккаунт заблокирован.

По умолчанию эта функция управляется через модуль pam_tally2 или pam_faillock. Чтобы проверить активный модуль в вашей среде, вы можете использовать:

Пример вывода сервера Linux с обоими модулями:

В этом случае на моем сервере установлены оба модуля, поэтому в зависимости от модуля, используемого для блокировки пользователя, вы должны выбрать тот же модуль, чтобы разблокировать учетную запись пользователя. Возможно, в более поздних дистрибутивах будет поставляться только один модуль.

Например, здесь доступен только модуль pam_faillock:

Здесь у нас нет модуля pam_tally2, поэтому мы будем использовать только модуль faillock.

5.1 Использование модуля pam_faillock

Предполагая, что ваш администратор использует pam_faillock для блокировки учетной записи пользователя, вы можете выполнить faillock из терминала от имени пользователя root, чтобы получить список неудачных попыток входа в систему:

Здесь я намеренно указал неправильный пароль для блокировки учетной записи user1, это можно подтвердить с помощью /var/log/secure :

Чтобы разблокировать учетную запись пользователя, мы снова воспользуемся командой faillock, как показано ниже:

Теперь вы увидите, что вся история неудачных попыток входа для пользователя 1 очищена, поэтому теперь пользователь 1 может снова войти в систему:

5.2 Использование модуля pam_tally2

Если вы используете модуль pam_tally2 для подсчета попыток входа и разрешения или запрета входа пользователя, вы также должны использовать pam_tally2 для разблокировки учетной записи пользователя в Linux. Например, здесь user1 заблокирован после нескольких неудачных попыток входа:

Итак, для сброса неудачных попыток входа мы используем:

Далее, если вы проверите количество активных неудачных попыток входа в систему, вывод будет пустым, что означает, что ваш пользователь разблокирован, и вы можете попытаться войти снова:

Обзор

В этой статье я попытался охватить различные возможные сценарии, при которых учетная запись пользователя может быть заблокирована, и действия по разблокировке учетной записи пользователя в зависимости от сценария. Это может стать очень сложным, когда пользователь root будет заблокирован, поэтому у вас всегда должен быть план резервного копирования, когда вы настраиваете такие функции, например, разрешаете консольный доступ root. Поскольку большинство этих настроек применяются к доступу на основе SSH или доступа на основе su и sudo. Таким образом, в худшем случае вы можете разрешить консольный доступ для пользователя root, чтобы он мог войти в систему и разблокировать себя.

Дополнительная литература

Похожие поисковые запросы: разблокировка учетной записи linux, разблокировка учетной записи пользователя linux, пароль разблокировки linux, разблокировка учетной записи passwd, разблокировка пароля пользователя, разблокировка учетной записи unix, разблокировка учетной записи linux redhat, как разблокировать пароль в linux, статус пользователя linux, статус учетной записи пользователя Linux, не удается разблокировать пароль для пользователя в Linux

Похожие сообщения

Не нашли то, что искали? Выполните быстрый поиск в GoLinuxCloud

Если мои статьи о GoLinuxCloud помогли вам, пожалуйста, купите мне кофе в знак признательности.

Для любых других отзывов или вопросов вы можете использовать раздел комментариев или форму обратной связи.

SQBack/Getty Images

Если вы администрируете систему Linux, вам, вероятно, придется заблокировать учетную запись. Может быть, кто-то меняет позиции и его дальнейшая потребность в аккаунте находится под вопросом; возможно, есть основания полагать, что доступ к учетной записи был скомпрометирован. В любом случае, вам необходимо знать, как заблокировать учетную запись и как разблокировать ее, если она понадобится снова.

Важно помнить, что существует несколько способов блокировки учетной записи, и не все они имеют одинаковый эффект. Если пользователь учетной записи получает доступ к учетной записи, используя открытые/закрытые ключи вместо пароля, некоторые команды, которые вы можете использовать для блокировки доступа к учетной записи, не будут эффективными.

Блокировка учетной записи с помощью команды passwd

Один из самых простых способов заблокировать учетную запись — использовать команду passwd -l. Например:

Эта команда вставляет восклицательный знак в качестве первого символа в поле зашифрованного пароля в файле /etc/shadow. Этого достаточно, чтобы пароль не работал. То, что раньше выглядело так (обратите внимание на первый символ):

будет выглядеть так:

При следующей попытке входа в систему (если она будет) головастик, вероятно, несколько раз попытается ввести пароль, но не получит доступа. Вы, с другой стороны, сможете проверить статус его учетной записи с помощью такой команды (-S = статус):

Буква "L" во втором поле означает, что учетная запись заблокирована. До того, как учетная запись была заблокирована, это была буква «P». "NP" означает, что пароль не установлен.

Команда usermod -L будет иметь тот же эффект (вставка восклицательного знака для отключения использования пароля).

Одним из преимуществ такой блокировки учетной записи является то, что ее очень легко разблокировать, когда это необходимо. Просто отмените изменение, удалив добавленный восклицательный знак с помощью текстового редактора или, что еще лучше, с помощью команды passwd -u.

Проблема с этим подходом заключается в том, что если пользователь получает доступ к своей учетной записи с помощью открытых/закрытых ключей, это изменение не заблокирует их использование.

Блокировка учетных записей с помощью команды chage

Еще один способ заблокировать учетную запись пользователя — использовать команду chage, которая помогает управлять датами истечения срока действия учетной записи.

Команда chage внесет небольшие изменения в файл /etc/shadow. Восьмое поле в этом файле, разделенном двоеточием (показано ниже), будет установлено на ноль (ранее пустое), и это означает, что срок действия учетной записи истек. Команда chage отслеживает количество дней между изменениями пароля, а также предоставляет информацию об истечении срока действия учетной записи при использовании этой опции. Ноль в восьмом поле будет означать, что срок действия учетной записи истекает через день после 1 января 1970 года, а также просто блокируется при использовании команды, подобной показанной выше.

Чтобы отменить это изменение, вы можете просто удалить 0, который был помещен в запись /etc/shadow для пользователя, с помощью следующей команды:

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

Присоединяйтесь к сообществам Network World на Facebook и LinkedIn, чтобы комментировать самые важные темы.

Сандра Генри-Стокер занимается администрированием систем Unix более 30 лет. Она описывает себя как «USL» (Unix как второй язык), но помнит достаточно английского, чтобы писать книги и покупать продукты. Она живет в горах в Вирджинии, где, когда не работает с Unix и не пишет о ней, отгоняет медведей от своих кормушек для птиц.

Одной из наиболее важных частей работы любого администратора является возможность управления учетными записями пользователей. В следующей статье мы проиллюстрируем различные способы блокировки и разблокировки учетной записи пользователя в системе Linux.

Габриэлла Беннет

Три способа блокировки и разблокировки учетных записей в системах Linux

Один из самых простых способов заблокировать учетную запись — использовать команду passwd с параметром -l для блокировки данной учетной записи пользователя.

Вы можете проверить статус заблокированной учетной записи с помощью команды passwd или отфильтровать данное имя пользователя из файла /etc/shadow.

Давайте проверим статус блокировки учетной записи пользователя с помощью команды passwd.

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

давайте теперь проверим статус блокировки учетной записи пользователя, отфильтровав данное имя пользователя из файла /etc/shadow.
Эффект этой команды заключается в вставке восклицательного (!) знака в качестве первого символа в поле зашифрованного пароля. в файле /etc/shadow. Этого достаточно, чтобы пароль не работал.

Конечно, вы также можете сделать это вручную, и это будет иметь тот же эффект. Однако мы не рекомендуем это делать.

Теперь обратим эффект, выполнив команду passwd с параметром -u, чтобы разблокировать данную учетную запись пользователя.

Usermod используется для модификации или изменения любых атрибутов уже созданной учетной записи пользователя через командную строку. В основном он используется для добавления пользователя в определенную группу.

Давайте запустим команду usermod с параметром -L, чтобы заблокировать данную учетную запись пользователя.

Опять же, статус заблокированной учетной записи пользователя можно проверить с помощью команды passwd -S или фильтрации пользователя из файла «/etc/shadow», поскольку команда usermod не имеет такой опции.

Проверка состояния блокировки учетной записи пользователя с помощью команды passwd.

Проверка состояния блокировки учетной записи пользователя с помощью файла /etc/shadow.

Давайте запустим команду usermod с параметром -U, чтобы снова активировать пароль, вернув ему предыдущее значение.

Разумеется, один из способов заблокировать пользователя – это запретить ему даже авторизоваться. Прежде всего, это правильно. Таким образом, оболочка этого пользователя может быть изменена на оболочку nologin, если учетная запись пользователя отключена, он/она не сможет получить доступ к системе Linux через SSH, пока учетная запись пользователя не будет активирована. .

Статус заблокированной учетной записи пользователя можно проверить по файлу /etc/shadow.

Теперь давайте попробуем ввести su пользователя snubmonkey.

Приведенное выше сообщение указывает на то, что пользователю не разрешен вход в систему.

*небольшой бонус: изменение оболочки на false

Есть также возможность изменить оболочку на false, которая, в отличие от nologin (которая отображает сообщение), просто выводит пользователя из системы всякий раз, когда пользователь пытается войдите в систему.
Это немного экстремально, но также полезно.

Снова попробуем выполнить su для пользователя snubmonkey, установив для оболочки значение false.

Отмена

Мы можем активировать отключенную учетную запись пользователя, изменив старую оболочку на исходную.

и вуаля, все готово!

Подпишитесь, чтобы узнать больше.

Самые полезные команды и ярлыки Nano

Работа под любым сервером Linux требует настройки большого количества файлов. Некоторые используют Vi, Vim или Emacs, хотя и мощные, но как-то утомительные для изучения. Для тех, кому нужен более простой и универсальный текстовый редактор, есть nano. GNU nano — небольшой и удобный текстовый редактор. Помимо основного

Процесс аутентификации пользователя

Вы когда-нибудь задавались вопросом, как работает процесс аутентификации пользователей? Давайте прыгать. К сожалению, ваш браузер не поддерживает этот тег! Что такое аутентификация пользователя? Аутентификация пользователя – это процесс безопасности, который охватывает все взаимодействия человека с компьютером, требующие от пользователя регистрации и входа в систему. Проще говоря, аутентификация

Читайте также: