我是服务器的超级管理员,想更改现有用户的密码。我该怎么做?
我试过
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
对于可以列出进程的用户来说将可见。