Я суперадмін сервера і люблю змінювати пароль існуючого користувача. Як я можу це зробити?
я намагався
usermod -p 'new-password' john
але це не спрацювало?
Я суперадмін сервера і люблю змінювати пароль існуючого користувача. Як я можу це зробити?
я намагався
usermod -p 'new-password' john
але це не спрацювало?
Відповіді:
Причина не спрацювала в тому usermod
, що опція -p очікує, що пароль вже буде зашифрований.
З usermod
чоловічої сторінки:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3).
Встановити пароль таким способом не рекомендується.
Натомість слід використовувати passwd <username>
. Це слід (як usermod
) робити як root (якщо ви не змінюєте поточний пароль користувача).
Щоб змінити пароль для foo користувача.
sudo passwd foo
Це запропонує новий пароль.
Подивіться на чоловічу сторінку для passwd
отримання додаткової інформації про налаштування, наприклад, закінчується час.
Щасти!
Спосіб призначення пароля з користувальницьким режимом (який саме насправді попросив ОП) - це використовувати аргументований crypt()
пароль для -p
аргументу.
SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""
Потім використовуйте це в usermod -p
аргументі командного рядка:
usermod -p ${HASH} john
Тут слід додати щось таке. Цей спосіб:
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}