忘记ubuntu登录密码

来源:互联网 发布:网络自制剧《牺牲》 编辑:程序博客网 时间:2024/04/30 14:37

好吧,不是什么好事儿,就当忘记密码讲吧。这里的系统版本是12.04 LTS。

重新启动机器,在启动的过程中,按Esc(刚才偶然按着shift+Esc居然调出了ubuntu任务管理器的图形界面,That is amazing),会看到启动选项,将焦点移动Recover mode的选项,然后,按e编辑。这样就可以编辑启动脚本,移动到最后一行,输入rw init=/bin/bash,然后回车。最后按F10,启动计算机。(实际上,ubuntu启动的时候会有recovery mode选项,进入就可以。)

这样,会看到一个recover menu的选项界面,选择“root    drop to a root shell prompt”选项,然后,回车。这时在屏幕下方便会有一个命令提示的光标,在这里可以输入任何命令,包括修改密码。但是,如果直接passwd <用户名>,会提示“authorization token manipulation error”。上网搜了一下,大致原因是因为当从上面的恢复模式直接进入root时,整个文件系统会被只读挂载(dropping into a root shell from the boot loader. Turned out the filesystem was mounted read only)。因为修改密码实际上也是修改系统上的shadow文件,所以会出现错误。解决的方法是用"mount -o remount,rw /",进行remount,这样便可以用passwd进行修改密码了。修改这后,重启机器,便可以重新登录了。

说明,ubuntu系统默认没有启用root,root账户没有固定的口令,且口令随时间变化。如果利用passwd root命令给root设置了口令,也就启用了root账户。其实,这样意义不大,因为当你需要 root 的权限时,使用 sudo 便可以了(而且,如果通过这样的方式设置了root的密码,在用上面的方式dropping into a root shell from the boot loader启动时,系统会要求输入root的口令)。当然,也可以将其禁用(锁定,lock)"sudo passwd -l root",用的时候解锁(unlock)"sudo passwd -u root"。

实际上,任何公网的机器都在无时无刻地不在经受着扫描攻击。不信可以大体下日志文件/var/log/auth.log(head -n 100 /var/log/auth.log),里面可以看到从一些ip登陆认证失败的信息,这就是被扫描攻击留下的痕迹。有一个工具可以处理这个问题,就是Denyhosts。DenyHosts会自动分析安全日志文件(如/var/log/secure和/var/log/auth.log等),当发现异常的连接请求后,会自动将其IP加入到/etc/hosts.deny文件中,从而达到阻止此    IP继续暴力破解的可能。同时,Denyhosts还能自动在一定时间后对已经屏蔽的IP地址进行解封,非常方便。

denyhosts的安装十分方便,只需要"sudo apt-get install denyhosts"即可。安装后,就会发现/var/log/auth.log中的认证失败的ip信息已经被加在了/etc/hosts.deny文件中了。这样,就将这些ip封禁了,使其不能认证登录。当然,通过配置文件/etc/denyhosts.conf也可以对denyhosts进行相关的其它配置。

原创粉丝点击