如何使用usermod更改密码?

Mr *_*der 12 password

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

我试过

usermod -p 'new-password' john
Run Code Online (Sandbox Code Playgroud)

但它没有用?

小智 19

usermod -p标志期望数据是已经采用加密格式的密码。

使用openssl passwd生成的加密数据,或者像这样做:

usermod -p `openssl passwd` (USERNAME)
Run Code Online (Sandbox Code Playgroud)

  • 应使用“openssl passwd -1”,否则 openssl 将默认为 -crypt 并将密码截断为 8 个字符,并显示“警告:截断密码为 8 个字符”消息。 (3认同)

Zok*_*oke 9

它不起作用的原因是因为usermod-p 选项期望密码已经加密。

usermod的手册页:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).
Run Code Online (Sandbox Code Playgroud)

不建议以这种方式设置密码。

相反,您应该使用passwd <username>. 这应该(作为usermod)以 root身份完成(如果您没有更改当前登录的用户密码)。

更改用户 foo 的密码。

sudo passwd foo
Run Code Online (Sandbox Code Playgroud)

这将提示输入新密码。

passwd有关设置的更多信息,例如过期时间,请查看手册页。

祝你好运!


Ria*_*iaD 7

您可以使用 passwd

sudo passwd USERNAME 
Run Code Online (Sandbox Code Playgroud)

sudo如果您自己是超级用户,则不需要