如何使用usermod更改密码?


10

我是服务器的超级管理员,喜欢更改现有用户的密码。我怎样才能做到这一点 ?

我试过了

usermod -p 'new-password' john

但这没有用吗?


最佳答案在这里:askubuntu.com/a/80447/55435,也请注意查看评论
ryenus

Answers:


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需要root密码:)
2012年

@Achu:需要当前用户密码。但是他是超级用户。
RiaD

什么是superuser代表?
2012年

3

用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

2

用于更改用户密码的非交互式单行命令:

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

usermod -p需要加密密码才能工作。请注意,new-password对于可以列出进程的用户将可见。


2

以下是应在此处添加的内容。该方法:

须藤usermod -p perl -e "print crypt("new-password","Q4")"约翰

意味着多个非常相似的密码都可以使用。例如,在Oracle Linux 7.4服务器和Ubuntu 17.10桌面上,请考虑:

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

现在,如果有人这样做:

su-orabuntu

您会发现以“ borkling”开头的任何密码都可以使用,例如

borkling88 borklingjars

尽管“ borkline”将不起作用,这是因为如前所述,以这种方式设置密码时,任何以“ borkling”作为前缀的密码也将起作用。

afaik没有这种不良副作用的一种解决方法如下:

(这些信用在此处转到“ Sandeep”:
https : //stackoverflow.com/questions/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script

在RedHaty Linuxes上:(如果您不想授予sudo privs,则省略“ -G wheel”)

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

在Debiany Linuxes上(如果您不希望使用sudo privs,请省略-G sudo):

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


1

只需输入

passwd

这样,普通用户可以在没有root特权的情况下更改自己的密码(如果没有)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.