如何使用 usermod 更改密码?

如何使用 usermod 更改密码?

我是服务器的超级管理员,想更改现有用户的密码。我该怎么做?

我试过

usermod -p 'new-password' john

但它不起作用?

答案1

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

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

usermod -p `openssl passwd` (USERNAME)

答案2

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

来自usermod的手册页:

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

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

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

更改用户 foo 的密码。

sudo passwd foo

这将提示输入新密码。

请参阅手册页以passwd获取有关设置(例如过期时间)的更多信息。

祝你好运!

答案3

您可以使用 passwd

sudo passwd USERNAME 

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

答案4

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

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

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

相关内容