恢复根密码

这还没有发生在我身上,但我正在logging这个过程,以防万一。

比方说,我不记得我的Linux服务器的根密码。 我可以find的这个scenerio的每个例子都说要先启动到单用户模式。 如果我的服务器当前以多用户模式运行,并且没有以根用户身份打开会话,该怎么办? 我如何下令没有root访问权的有序closures,以便我可以开始密码恢复过程?

在控制台的大多数Linux系统上,如果按下CTRLALTDEL命令, shutdown -r now将被执行并导致系统重新启动。 如果您的init脚本安装正确,这应该导致安全重启。 您可以修改您的inittab ,使CTRLALTDEL做任何你想做的事情,包括切换到单用户模式。 一旦你重新启动,你可以使用livecd,启动到单用户模式或任何你喜欢的。 如果需要root密码才能在系统上进入单用户模式,则应事先进行testing。 在某些系统上,它不是(Ubuntu / Debian,当root密码被禁用时)在其他系统上。

如果你的系统使用init,那么/etc/inittab

 # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 

对于新贵的系统,请检查文件/etc/event.d/control-alt-delete

 # control-alt-delete - emergency keypress handling # # This task is run whenever the Control-Alt-Delete key combination is # pressed. Usually used to shut down the machine. start on control-alt-delete exec /sbin/shutdown -r now "Control-Alt-Delete pressed" 

一些想法,以避免厌倦了失去根密码:

  • 不要使用root帐户,而是使用启用sudo的用户帐户。
  • 用Puppetpipe理你的服务器。 只用Puppet改变你的root密码。 这样,即使您丢失了根密码,您也只需修改Puppet清单中的密码,然后等待您的服务器取回密码。
  • configuration您的服务器以允许基于LDAP的身份validation。

根据操作系统的不同,一个简单的方法就是使用SLAX,也就是使用实时发行版来手动或使用chroot来编辑/ etc / passwd或/ etc / shadow文件…或者…启动到单个用户模式并使用特定于操作系统的恢复过程。