passwd, sudo passwd и sudo passwd root выглядят как одна команда с разными аргументами, а ведут себя по-разному в зависимости от того, чей пароль вы меняете и с чьими правами. Разбираем все три случая, срок действия пароля через chage, блокировки после неудачных попыток и что делать, если на сервер совсем не войти.

В Ubuntu пароль меняет одна команда - passwd, но ведёт она себя по-разному в зависимости от того, кто её запускает и чей пароль меняет. Свой пароль - спросит старый. Чужой через sudo - не спросит ничего, кроме нового. Пароль root - вообще отдельная история, особенно если вход под root по SSH выключен, а он выключен почти всегда. Разберём все три сценария смены пароля в Ubuntu, а заодно - что делать, если пароль забыт совсем, как посмотреть срок его действия и что означают самые частые ошибки при смене.

Коротко. Меняете свой пароль под обычным пользователем - просто passwd, спросит текущий пароль. Меняете пароль другого пользователя, будучи sudo-пользователем - sudo passwd имя_пользователя, старого пароля не спросит. Хотите задать или сменить пароль root - sudo passwd root, тоже без вопроса о старом. Чтобы поработать именно под root - sudo -i (не su -, если не знаете пароль root). Не входите вообще ни под кем - нужна веб-консоль сервера или recovery mode в панели, без сети. Срок действия пароля смотрите через chage -l имя_пользователя, отключаете - sudo chage -M 99999 имя_пользователя. Если после смены пароля видите passwd: Authentication token manipulation error - в половине случаев это забитый диск, проверяйте df -h.

Свой пароль под обычным пользователем: passwd

Это самый частый случай - вы залогинены на сервер под своим именем и хотите поменять пароль на новый, потому что старый скомпрометирован, слишком простой или просто пора. Команда одна:

passwd

Ubuntu хранит пароли не в открытом виде, а в виде хеша в файле /etc/shadow - его может читать только root. Команда passwd проверяет, что вы действительно владелец аккаунта, поэтому первым делом просит подтвердить текущий пароль, и только потом даёт ввести новый:

Changing password for username.
Current password:
New password:
Retype new password:
passwd: password updated successfully

  • Current password - ваш текущий пароль, не путать с паролем root: passwd спрашивает пароль именно того аккаунта, под которым вы сейчас работаете;
  • New password и Retype new password - новый пароль вводится дважды, чтобы отсеять опечатку - при вводе символы не показываются вообще, даже звёздочками, это нормально;
  • строка passwd: password updated successfully - единственный надёжный признак, что пароль реально поменялся.

Если вместо этой строки видите что-то про authentication token или про длину пароля - переходите в раздел про ошибки ниже, там разобраны оба варианта.

Пароль другого пользователя: sudo passwd

Другая частая задача - вы администратор сервера, у вас есть sudo, и нужно сменить пароль коллеге или пользователю, который сам забыл свой. Разница с предыдущим случаем в том, что вы не знаете и не обязаны знать текущий пароль этого человека - и команда его не спрашивает:

sudo passwd alice

New password:
Retype new password:
passwd: password updated successfully

Логика простая: sudo уже проверил, что вы - тот, за кого себя выдаёте, потребовав ваш собственный пароль (или используя закешированный тикет, если вы вводили его недавно). Дальше команда выполняется от имени root, а root может менять пароль любому пользователю без знания его текущего пароля - так и работает система восстановления доступа. Разница между passwd и sudo passwd alice - не в самой команде, а в том, чьими правами вы действуете.

Важно: без sudo обычный пользователь может сменить пароль только сам себе. Команда passwd alice без sudo, если вы не root, завершится ошибкой passwd: You may not view or modify password information for alice - так и должно быть, это защита, а не баг.

Пароль root: sudo passwd root

Root - это аккаунт с неограниченными правами, обычно единственный, у кого в Ubuntu на VPS выключен вход по SSH напрямую. Тем не менее у него есть свой пароль в /etc/shadow, и иногда его нужно задать или сменить: для работы через su позже, для входа в консоли восстановления, для доступа к серверу не через SSH. Если у вас есть sudo, задать пароль root - та же схема, что и для любого другого пользователя:

sudo passwd root

New password:
Retype new password:
passwd: password updated successfully

Никакого текущего пароля root тут тоже не спрашивают - по той же причине, что и в предыдущем разделе: команда работает от имени root благодаря sudo, а не от вашего собственного аккаунта.

Заданный пароль root даёт войти под root локально - через консоль сервера или su/sudo -i. Вход по SSH напрямую как root отдельно управляется параметром PermitRootLogin в /etc/ssh/sshd_config: на большинстве образов Ubuntu он по умолчанию запрещён или ограничен только входом по ключу. Смена пароля root эту настройку не меняет - если вам действительно нужен прямой SSH-доступ под root, это отдельный шаг, и в общем случае лучше обойтись без него в пользу sudo-пользователя. ПРОВЕРИТЬ: точное значение по умолчанию на актуальных образах WeaselCloud.

Стать root и работать под ним: sudo -i против su -

Иногда вместо разовой смены пароля нужна полноценная сессия от имени root - поставить пакет, который требует явного root-окружения, или разобраться с правами в системных каталогах. Тут есть два похожих способа, и они ведут себя по-разному в контексте пароля.

su - - классическая команда «переключиться на другого пользователя», но она спрашивает пароль того аккаунта, на который переключаетесь - то есть пароль root. Если вы его не знаете или он ещё не задан, команда просто не пустит:

su -
Password:

sudo -i - открывает root-сессию через sudo, а значит просит ваш собственный пароль (или ничего не просит, если тикет sudo ещё свежий):

sudo -i

После неё приглашение меняется на root@hostname:~# - это и есть признак, что вы внутри root-сессии. Если теперь выполнить в ней просто passwd без аргументов, произойдёт третий вариант поведения: вы меняете пароль самого root, но текущий пароль root у вас всё равно не спросят - root освобождён от этой проверки для себя самого:

passwd

New password:
Retype new password:
passwd: password updated successfully

Когда так делать: если у вас есть sudo, но пароля root вы не знаете (частый случай - новый VPS, где root заблокирован по паролю с самого начала) - используйте sudo -i, а не su -. su - имеет смысл, только когда пароль root уже известен и вход через него быстрее, чем через sudo.

Если на сервер вообще не войти

Бывает хуже: вы потеряли и пароль от своего пользователя, и не знаете пароль root, а SSH-ключ утерян или это вообще унаследованный сервер без ваших ключей. Обычные команды тут не помогут - для них нужна хотя бы одна рабочая сессия.

Путь восстановления - зайти в обход сети и SSH напрямую. В панели WeaselCloud для этого есть веб-консоль сервера: она показывает экран и клавиатуру машины так, будто вы физически сидите перед ней, и работает даже когда сеть или SSH-демон недоступны. Через неё можно залогиниться локально под известным аккаунтом или загрузиться в recovery mode - специальный режим загрузки с рутовым шеллом без пароля - и сбросить пароль нужного пользователя оттуда командой passwd.

ПРОВЕРИТЬ: точное название пункта веб-консоли и recovery mode в актуальной панели WeaselCloud, пошаговая последовательность экранов - сверить с живым интерфейсом и сделать скриншоты для финальной версии статьи.

Если у вас в принципе нет ни одного известного пароля и ни одного SSH-ключа от сервера, а данные на нём важны - это тот случай, когда быстрее и надёжнее восстановить доступ через консоль, чем гадать. Переустановка ОС из панели - крайний вариант, если сервер пустой или бэкап есть отдельно.

Срок действия пароля: chage

В Ubuntu у каждого пароля может быть срок действия - через сколько дней система потребует сменить его снова. Это управляется отдельно от самого пароля, командой chage («change age», возраст пароля). Посмотреть текущие настройки:

chage -l username

Last password change : Sep 11, 2026
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

Это реальный вывод для свежесозданного пользователя на Ubuntu 24.04 - проверили вживую на тестовом сервере 11 сентября 2026 года. 99999 в строке максимального срока стоит там по умолчанию, никто его специально не выставлял.

  • Password expires - дата, когда пароль перестанет работать; never означает, что срок фактически отключён;
  • Maximum number of days... - и есть тот самый срок жизни пароля в днях; 99999 дней - это около 274 лет, стандартный способ в Linux сказать «бессрочно», а не специальное магическое значение;
  • свой аккаунт chage -l показывает без sudo, а для чужого понадобится sudo chage -l alice.

На свежем сервере скорее всего увидите ровно то же самое, что показано выше - never и 99999. Если вместо этого в выводе стоит конкретное небольшое число дней - это уже не поведение по умолчанию, а чья-то политика безопасности поверх образа (например, некоторые захардненные или корпоративные шаблоны выставляют 90 дней), и пароль в какой-то момент реально перестанет пускать вас на сервер. Отключить принудительную смену:

sudo chage -M 99999 username

Что вы увидите: команда ничего не печатает при успехе - проверяйте результат повторным chage -l, там Maximum number of days... должно стать 99999, а Password expires - показать дату на сотни лет вперёд или never.

Частые ошибки при смене пароля

«passwd: Authentication token manipulation error». Самое неприятное - эта строка одинаково появляется в двух совершенно разных ситуациях, и по ней самой не различить, в какой именно вы попали.

Первая причина - система физически не может записать новый хеш пароля на диск: файловая система переполнена или смонтирована только для чтения. Чаще всего забивается не корень, а /boot - после серии обновлений ядра там скапливаются старые версии. Проверяйте:

df -h

Смотрите на колонку Use% для строк / и /boot - если там 100% или около того, дело в диске. Освободите место (для /boot обычно помогает sudo apt autoremove, который удаляет старые ядра) и повторите passwd.

Вторая причина - вы трижды подряд ввели новый пароль, который не прошёл проверку сложности, и после третьей неудачной попытки passwd сдался с этой же формулировкой ошибки, ничего не поменяв. В этом случае перед финальной строкой обычно виден предупреждающий текст вроде BAD PASSWORD или «You must choose a longer password» - листайте вывод выше, не только последнюю строку. ПРОВЕРИТЬ: точный текст предупреждения и число попыток на актуальной версии libpwquality в 22.04/24.04.

«You must choose a longer password» / «BAD PASSWORD». Это не ошибка выполнения, а отказ модуля проверки качества пароля - минимальная длина (обычно 8 символов) или недостаточное разнообразие символов. Просто введите пароль подлиннее и посложнее. У root эта проверка на многих системах по умолчанию не действует - он может задать себе любой пароль, включая короткий, поэтому не удивляйтесь, если под root то же самое сработает без возражений. ПРОВЕРИТЬ: поведение enforce_for_root на актуальных образах.

Аккаунт заблокирован после нескольких неудачных попыток входа. Если кто-то (или вы сами) несколько раз подряд ввёл неверный пароль при входе, система может временно заблокировать аккаунт - это делает модуль pam_faillock (в старых системах эту роль играл pam_tally2, в актуальных Ubuntu он не используется). Сама команда точно есть в системе - бинарь /usr/sbin/faillock стоит на Ubuntu 24.04 по умолчанию, ничего доустанавливать не нужно. Посмотреть счётчик неудачных попыток:

sudo faillock --user alice

Вывод - таблица с временем каждой неудачной попытки. ПРОВЕРИТЬ: точный формат этой таблицы (названия колонок) - воспроизвести реально заблокированную запись через su за разумное время не вышло, потому что su не прогоняет полный PAM-стек так, как настоящий вход по SSH с неверным паролем; нужен прогон через несколько подряд неудачных SSH-подключений. Если счётчик есть и вход всё ещё не проходит, сбросить его:

sudo faillock --user alice --reset

Важно понимать разницу: блокировка через faillock не имеет отношения к самому паролю - пароль остаётся тем же, просто система временно не даёт им воспользоваться. Смена пароля эту блокировку не снимает, нужен именно сброс счётчика.

Хочу сделать

Команда

Спросит текущий пароль?

Поменять свой пароль

passwd

да, ваш собственный

Поменять пароль другого пользователя (есть sudo)

sudo passwd alice

нет, только новый дважды

Задать или сменить пароль root (есть sudo)

sudo passwd root

нет, только новый дважды

Поработать под root, если пароль root неизвестен

sudo -i, затем внутри при необходимости passwd

спросит ваш пароль на входе; внутри - без вопроса о старом

Переключиться на root, если пароль root известен

su -

да, пароль root

Ни один пароль не подходит, нет доступа вообще

веб-консоль сервера / recovery mode в панели WeaselCloud

нет, доступ в обход сети

Частые вопросы

Как сменить пароль root в Ubuntu?

Если у вас есть sudo-доступ - самый прямой способ sudo passwd root: команда попросит только новый пароль дважды, текущий пароль root знать не нужно. Альтернатива - зайти в root-сессию через sudo -i и выполнить внутри неё passwd без аргументов. Учтите, что смена пароля root не включает прямой вход root по SSH - это отдельная настройка PermitRootLogin в sshd_config.

Забыл пароль от VPS Ubuntu - что делать?

Если у вас остался хоть один рабочий SSH-ключ или другой пользователь с sudo - зайдите под ним и смените нужный пароль командой sudo passwd имя_пользователя. Если доступа нет совсем ни под кем, используйте веб-консоль сервера в панели управления - она показывает экран машины в обход SSH и сети, через неё можно войти локально или загрузиться в recovery mode и сбросить пароль оттуда.

Почему sudo passwd не спрашивает старый пароль?

Потому что sudo уже проверил вашу личность, потребовав ваш собственный пароль при входе в sudo-сессию (или использовав недавно введённый и ещё не истёкший тикет). Дальше passwd выполняется от имени root, а root имеет право менять пароль любому пользователю системы, не зная его текущего пароля - именно так и работает восстановление доступа для других людей.

Что значит passwd: Authentication token manipulation error?

Чаще всего - система не может записать новый пароль на диск: файловая система переполнена (особенно часто /boot после накопившихся старых ядер) или смонтирована только для чтения. Проверьте df -h. Вторая возможная причина - новый пароль трижды подряд не прошёл проверку сложности, и passwd сдался с той же ошибкой; тогда чуть выше в выводе будет предупреждение вроде BAD PASSWORD.

Как узнать, когда истекает пароль в Linux?

Команда chage -l имя_пользователя (для своего аккаунта - без sudo, для чужого - с sudo) показывает дату истечения пароля в строке Password expires и максимальный срок его действия в днях. Если там стоит never - принудительной смены нет. Отключить её можно командой sudo chage -M 99999 имя_пользователя.

Проверено на

Все выводы команд passwd, sudo passwd и sudo -i + passwd в этой статье, а также вывод chage -l - реальные, сняты на тестовом сервере с Ubuntu 24.04 11 сентября 2026 года, не реконструированы по памяти. Бинарь faillock на этом же тест-боксе присутствует по умолчанию, но заблокированную запись и точный формат таблицы вывода вживую воспроизвести не успели - это в чек-листе «Проверить». Отдельно на Ubuntu 22.04 эту серию команд не прогоняли, но passwd, chage и faillock входят в те же базовые пакеты (passwd, libpam-modules) и на 22.04, поведение между релизами в этой части не менялось. Точные формулировки предупреждений pwquality, поведение enforce_for_root и дефолт PermitRootLogin - в чек-листе «Проверить» выше, живьём не подтверждены.

Коротко

  • Свой пароль - просто passwd, спросит текущий.
  • Чужой пароль при наличии sudo - sudo passwd имя_пользователя, текущего не спросит.
  • Пароль root - так же, sudo passwd root, без вопроса о старом.
  • Не знаете пароль root, но есть sudo - заходите через sudo -i, не через su - (та спросит именно пароль root).
  • Нет доступа вообще ни под кем - веб-консоль сервера или recovery mode в панели WeaselCloud, в обход сети.
  • Срок действия пароля - chage -l имя_пользователя, отключить - sudo chage -M 99999 имя_пользователя.
  • Authentication token manipulation error - сначала df -h, потом проверка сложности пароля.
  • Блокировка после неудачных попыток входа снимается через sudo faillock --user имя_пользователя --reset, смена пароля её не отменяет.

Что дальше