Запити «змінити пароль Ubuntu» і «скинути пароль Linux» насправді описують кілька різних завдань: зміна власного пароля, зміна пароля іншого користувача, налаштування терміну його дії та відновлення доступу, коли пароль втрачено. Тут зібрано команди passwd і chage, пояснено, де система зберігає паролі, і показано, як задати вимоги до складності.
Пароль root і пароль sudo — це різні речі
Пароль root — це пароль облікового запису root. Пароль sudo — це пароль вашого звичайного користувача: команда sudo питає його, щоб переконатися, що за терміналом сидите ви, а потім виконує дію від імені root. В Ubuntu в облікового запису root за замовчуванням немає робочого пароля: його заблоковано, а адміністрування йде через sudo. Тому на запитання «який пароль root в Ubuntu за замовчуванням» відповідь така: жодного, вхід під root за паролем закрито.
Це зручно і безпечніше: кожна дія адміністратора прив'язана до конкретного користувача. Задавати пароль root без причини не треба. Для входу на сервер використовуйте ключі, як описано в статті SSH-ключі для VDS.
passwd: зміна, блокування, статус
Свій пароль змінюють командою passwd без аргументів: система запитає поточний пароль, потім новий двічі. Пароль іншого користувача змінює адміністратор. Блокування не видаляє обліковий запис, а лише унеможливлює вхід за паролем:
passwd
sudo passwd alice
sudo passwd -l alice
sudo passwd -u alice
sudo passwd -S alice
sudo passwd -e alice
- -l блокує пароль користувача, -u знімає блокування;
- -S показує статус: L — заблоковано, P — пароль задано, NP — пароля немає;
- -e одразу робить пароль простроченим, і користувач зобов'язаний змінити його при наступному вході.
Блокування пароля не закриває вхід за SSH-ключем. Щоб повністю вимкнути обліковий запис, потрібно додатково обмежити й ключі.
chage: термін дії пароля
Утиліта chage керує віком пароля. Команда chage -l показує поточні налаштування, решта ключів їх змінює:
sudo chage -l alice
sudo chage -M 90 -W 7 alice
sudo chage -d 0 alice
Тут -M задає максимальний термін життя пароля в днях, -W — за скільки днів попереджати про скорий кінець терміну, а -d 0 обнуляє дату останньої зміни, тому при наступному вході користувач зобов'язаний задати новий пароль. Це зручний спосіб видати тимчасовий пароль: ви створюєте обліковий запис, повідомляєте початковий пароль і вимагаєте негайної зміни. Мінімальний термін між змінами задає -m, а -E ставить дату блокування облікового запису.
Де лежать паролі: /etc/passwd і /etc/shadow
Файл /etc/passwd доступний для читання всім і описує користувачів: сім полів через двокрапку — ім'я, символ x (пароль винесено в інший файл), UID, GID, коментар, домашній каталог і оболонка. Геші паролів зберігаються в /etc/shadow, доступ до якого обмежено: звичайні користувачі його не читають. У ньому дев'ять полів:
| Поле | Значення |
|---|---|
| 1 | Ім'я користувача |
| 2 | Геш пароля; ! або * на початку означає блокування |
| 3 | Дата останньої зміни пароля, у днях з 1970 року |
| 4 | Мінімальний термін між змінами |
| 5 | Максимальний термін життя пароля |
| 6 | За скільки днів попереджати |
| 7 | Скільки днів після завершення терміну обліковий запис ще активний |
| 8 | Дата блокування облікового запису |
| 9 | Зарезервовано |
Префікс геша вказує алгоритм: наприклад, $y$ — yescrypt, а в старих системах трапляється SHA-512. Правити ці файли вручну не треба: для цього є passwd, chage і usermod. А от читати shadow корисно під час діагностики блокувань.
Вимоги до складності: pam_pwquality
Модуль pam_pwquality перевіряє новий пароль при зміні через passwd. У Debian і Ubuntu він ставиться пакетом libpam-pwquality, правила лежать у /etc/security/pwquality.conf. У родині RHEL той самий файл використовується за замовчуванням.
sudo apt install libpam-pwquality
minlen = 12
minclass = 3
maxrepeat = 3
enforce_for_root
Параметр minlen задає мінімальну довжину, minclass — кількість обов'язкових класів символів (малі, великі, цифри, інші), maxrepeat обмежує повтор одного символу поспіль, а enforce_for_root поширює правила й на root. Політика діє лише під час зміни пароля через PAM і не захищає від витоку: добрий пароль має бути унікальним. Поради щодо вибору — у статті безпечні паролі.
Пароль втрачено: що робити
Якщо є інший користувач із правом sudo, він скидає пароль командою sudo passwd ім'я. Якщо доступу немає ні в кого, завантажте сервер у режим відновлення, підключіть системний диск і змініть пароль усередині chroot. Порядок дій описано в статті режим відновлення сервера.
Часті питання
Який пароль root в Ubuntu за замовчуванням?
Жодного. В Ubuntu обліковий запис root за замовчуванням заблоковано: у полі пароля файла /etc/shadow стоїть знак блокування, тому увійти під root за паролем не можна. Адміністрування виконується через sudo, а запитується пароль вашого звичайного користувача, який ви задали під час створення сервера.
Як змінити пароль від сервера Ubuntu?
Увійдіть під своїм користувачем і виконайте команду passwd: введіть поточний пароль, потім новий двічі. Щоб змінити пароль іншого користувача, використовуйте sudo passwd та ім'я облікового запису. Якщо вхід іде за SSH-ключем, пароль потрібен лише для sudo, і змінювати його варто так само регулярно.
Як змусити користувача змінити пароль при першому вході?
Виконайте sudo chage -d 0 ім'я або sudo passwd -e ім'я. Обидві команди позначають пароль як простроченим, і при наступному вході система вимагатиме ввести новий пароль до початку роботи. Так зручно видавати тимчасові паролі новим адміністраторам чи клієнтам, не передаючи їм постійний секрет.
Чи можна дізнатися пароль користувача з /etc/shadow?
Ні. У файлі лежить не сам пароль, а його геш, і зворотного перетворення в нього немає. Слабкий пароль при цьому можна підібрати перебором, якщо файл потрапив стороннім. Тому доступ до shadow обмежено, а паролі мають бути довгими та унікальними. Забутий пароль не відновлюють, а задають заново.