Як змінити пароль за допомогою usermod?


10

Я суперадмін сервера і люблю змінювати пароль існуючого користувача. Як я можу це зробити?

я намагався

usermod -p 'new-password' john

але це не спрацювало?


найкраща відповідь тут: askubuntu.com/a/80447/55435 , зауважте, щоб також
оформити

Відповіді:


17

usermod -pПрапор очікує дані на пароль вже в зашифрованому вигляді.

Використовуйте openssl passwdдля створення зашифрованих даних або зробіть це так:

usermod -p `openssl passwd` (USERNAME)

openssl passwdочікує пароль від 0 до 10 символів.
Анонімно

6

Причина не спрацювала в тому usermod, що опція -p очікує, що пароль вже буде зашифрований.

З usermodчоловічої сторінки:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

Встановити пароль таким способом не рекомендується.

Натомість слід використовувати passwd <username>. Це слід (як usermod) робити як root (якщо ви не змінюєте поточний пароль користувача).

Щоб змінити пароль для foo користувача.

sudo passwd foo

Це запропонує новий пароль.

Подивіться на чоловічу сторінку для passwdотримання додаткової інформації про налаштування, наприклад, закінчується час.

Щасти!


6

Ви можете використовувати passwd:

sudo passwd USERNAME 

Вам не потрібно, sudoякщо ви самі суперпользователь


sudoвимагають кореневого пароля :)
Achu

@Achu: потрібен поточний пароль користувача. Але він суперусер.
RiaD

Що superuserявляє собою?
Ачу

3

Спосіб призначення пароля з користувальницьким режимом (який саме насправді попросив ОП) - це використовувати аргументований crypt()пароль для -pаргументу.

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

Потім використовуйте це в usermod -pаргументі командного рядка:

usermod -p ${HASH} john

2

Неінтерактивна однорядкова команда для зміни пароля користувача:

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -pдля роботи потрібен зашифрований пароль. Зверніть увагу, це new-passwordбуде видиме для користувачів, які можуть перелічити процеси.


2

Тут слід додати щось таке. Цей спосіб:

sudo usermod -p perl -e "print crypt("new-password","Q4")"john

означає, що декілька дуже схожих паролів будуть ВСІ працювати. Наприклад, на сервері Oracle Linux 7.4 та на робочому столі Ubuntu 17.10 врахуйте:

sudo usermod -p perl -e "print crypt("borkling","Q4")"orabuntu

Тепер, якщо хтось робить:

су - орабунту

Ви виявите, що БУДЬ-який пароль, який починається з "borkling", буде працювати, наприклад

borkling88 borklingjars

хоча "borkline" не працюватиме, тому що, як було сказано раніше, будь-який пароль, який має "borkling" як його префікс, також буде працювати, коли пароль встановлений таким чином.

Шлях до цього, що афаїк не має цього небажаного побічного ефекту, полягає в наступному:

(заслуга в цьому - "Sandeep" тут:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )

У RedHaty Linuxes: (опустіть "-G колесо", якщо ви не хочете, щоб sudo privs надано)

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G колесо $ {USERNAME}

У Debiany Linuxes (опустіть -G sudo, якщо ви не хочете, щоб sudo privs):

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}


1

Просто введіть

passwd

Таким чином звичайний користувач може змінити власний пароль без права доступу root, якщо у вас його немає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.