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 не имеет отношения к самому паролю - пароль остаётся тем же, просто система временно не даёт им воспользоваться. Смена пароля эту блокировку не снимает, нужен именно сброс счётчика.
Хочу сделать | Команда | Спросит текущий пароль? |
|---|---|---|
Поменять свой пароль | | да, ваш собственный |
Поменять пароль другого пользователя (есть sudo) | | нет, только новый дважды |
Задать или сменить пароль root (есть sudo) | | нет, только новый дважды |
Поработать под root, если пароль root неизвестен |
| спросит ваш пароль на входе; внутри - без вопроса о старом |
Переключиться на root, если пароль root известен | | да, пароль 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, смена пароля её не отменяет.
Что дальше
- Частые проблемы Linux-сервера - разбор остальных типовых сбоев на VPS и как их ловить.
- Как перезапустить сеть в Ubuntu и Debian - если после смены пароля обнаружили, что сеть отвалилась отдельно.
- Ошибки nginx: 404, 502, 504, 413 - когда с доступом на сервер всё в порядке, а сайт всё равно не отвечает.
