Я superadmin сервера и хотел бы изменить пароль существующего пользователя. Как я могу это сделать ?
Я старался
usermod -p 'new-password' john
но это не сработало?
Я superadmin сервера и хотел бы изменить пароль существующего пользователя. Как я могу это сделать ?
Я старался
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
получения дополнительной информации о настройке, например, времени истечения.
Удачи!
Способ присвоения пароля с помощью usermod (что фактически и запрашивал OP) - использовать 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
usermod -p
требует зашифрованный пароль для работы. Обратите внимание, что new-password
это будет видно для пользователей, которые могут перечислить процессы.
Здесь следует добавить следующее. Этот метод:
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» в качестве префикса, также будет работать, когда пароль установлен таким образом.
Способ, которым afaik не имеет этого нежелательного побочного эффекта, является следующим:
(кредит за это идет в "Sandeep" здесь:
/programming/2150882/how-to-automatics-add-user-account-and-password-with-a-bash-script )
В RedHaty Linux: (опустите колесо -G, если вы не хотите предоставлять привилегии sudo)
sudo useradd -m -p $ (openssl passwd -1 $ {ПАРОЛЬ}) -s / bin / bash -G wheel $ {USERNAME}
В Debiany Linux (опустите -G sudo, если вы не хотите использовать sudo privs):
sudo useradd -m -p $ (openssl passwd -1 $ {ПАРОЛЬ}) -s / bin / bash -G sudo $ {USERNAME}