Linux服务器上用户的密码丢失:如何重置?


17

在服务器上,用户16040丢失了密码。我有root密码,但没有用户16040的密码。如何重置他的密码?

使用passwd 16040,unix询问我当前没有的密码。是否有命令可以在没有当前密码的情况下重置用户密码?

passwd 16040
Changing password for 16040.
Current password for 16040@friesbie.com:

Answers:


24

如果您passwd 16040以root用户身份运行,则不会要求您输入当前密码。

更改密码后,您应该考虑发出chage -d 0 16040。这将密码的最后更改日期设置为较远的日期。假设密码已设置为在您的系统上过期,这将迫使用户在登录后更改其密码。这使他们有机会选择仅对其已知的密码。


3

您应该passwd 16040以root身份发出(sudo passwd 16040用户如果您的用户在sudoers文件中)以更改其密码。它不会要求您提供当前版本。

或者,如果您对该框具有物理访问权限,则可以附加init=/bin/bash为内核参数以获取root用户访问权限,然后发出passwd 16040


3
在内联命令中具有提示相当令人困惑,并且很容易被误解为命令的一部分。请仅在块引号中使用提示。另外,# >它很少见,这里>只是简单地将其误解为命令的一部分-常见的做法是#root-shell和$非root用户使用简单的名称。
Andreas Wiese 2014年

没错,为了清楚起见,我已经编辑了答案。谢谢。
peperunas

1

如果您不能直接以root用户身份登录,则可以尝试

  • sudo /usr/bin/passwd 16040
  • sudo -i 之后 /usr/bin/passwd 16040

我假设它passwd在/ usr / bin中(您可以使用命令进行验证which passwd


sudo bashroot(尽管很常见)启动shell是非常非常糟糕的sudo做法。是sudo -ssudo -i(分别是非登录或登录外壳)。这甚至支持您设置的默认外壳,/etc/passwd而无需您自己关心。此外,bash没有完整的路径本身并不是一个好主意,因为这将是恶意用户将在其中放置的第一个伪二进制文件之一$PATH
Andreas Wiese 2014年

我同意完整的路径规范以及的使用sudo -i,因此我修改了答案...但是,如果您谈论安全性以及可能隐藏troian的可能性,$PATH最好避免使用,sudo -s因为至少添加了$USER/bin目录和您可以想象的所有别名... :-)
Hastur 2014年

的确确实有好处,但取决于sudo配置:随附的默认配置sudo不会保留$HOME变量的设置,因此您最终将拥有自己的rc文件,而不是源的rc文件$SUDO_USER
Andreas Wiese 2014年
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.