Забыли пароль пользователя на сервере Linux: как его сбросить?

17

На сервере пользователь 16040 потерял свой пароль. У меня есть пароль для root, но нет пароля для пользователя 16040. Как я могу сбросить его пароль?

С помощью passwd 16040unix задайте мне текущий пароль, которого у меня нет. Есть ли команда для сброса пароля пользователя без текущего пароля?

passwd 16040
Changing password for 16040.
Current password for 16040@friesbie.com:
Катандзаро
источник

Ответы:

24

Если вы запускаете passwd 16040от имени пользователя root, у вас не будет запрашиваться текущий пароль.

После изменения пароля вы должны рассмотреть вопрос о выдаче chage -d 0 16040. Это устанавливает дату последнего изменения пароля далеко в прошлом; Предполагая, что срок действия паролей в вашей системе истек, это заставит пользователя сменить пароль после входа в систему. Это даст ему возможность выбрать только известный ему пароль.

Артур Шимчак
источник
3

Вы должны выдать passwd 16040от имени пользователя root ( sudo passwd 16040если ваш пользователь находится в файле sudoers), чтобы изменить его / ее пароль. Это не попросит вас о текущем.

Или, если у вас есть физический доступ к блоку, вы можете добавить его в init=/bin/bashкачестве параметра ядра, чтобы получить root-доступ, а затем выполнить команду passwd 16040.

peperunas
источник
3
Наличие подсказки во встроенных командах довольно озадачивает и может быть легко неверно истолковано как часть команды. Пожалуйста, используйте только подсказки в кавычках. Кроме того, # >это довольно необычно, и здесь >просто предлагается неверно истолковать как часть команды - обычная практика - использовать простые #для root-shells и $не-root.
Андреас Визе
Вы правы, я отредактировал свой ответ для ясности. Благодарю.
peperunas
1

Если вы не можете войти напрямую как root, вы можете попробовать

  • sudo /usr/bin/passwd 16040,
  • sudo -i и после /usr/bin/passwd 16040

Я предполагаю, что passwdнаходится в / usr / bin (вы можете проверить с помощью команды which passwd)

Hastur
источник
sudo bashдля запуска rootоболочки (хотя и часто) это очень, очень плохая sudoпрактика. Это sudo -sили sudo -i(не логин или логин-оболочка, соответственно). Это даже соблюдает установленную по умолчанию оболочку, /etc/passwdне заботясь об этом самостоятельно. Кроме того, bashбез полного пути плохая идея сама по себе, так как это будет один из первых поддельных-бинарников злоумышленник бы поставить куда - то $PATH.
Андреас Визе
Я согласен с полной спецификацией пути и использованием sudo -i, и поэтому я изменил ответ ... но если вы говорите о безопасности и возможности скрытого трояна в $PATHвозможно, лучше не использовать, sudo -sтак как вы добавляете хотя бы $USER/binкаталог и все псевдонимы, которые вы можете себе представить ... :-)
Hastur
Хороший момент, действительно, но зависит от sudoконфигурации: конфигурация по умолчанию, поставляемая с sudo, не сохраняет установленную $HOMEпеременную, таким образом, в итоге вы получите свои собственные rc-файлы, а не эти $SUDO_USER.
Андреас Визе