Ubuntu进入recovery单用户模式获得读写权限

来源:互联网 发布:java游戏服务器架构 编辑:程序博客网 时间:2024/06/05 04:54

今天真实的体验了一把nozuo nodie,因为一时兴起造成的错误,花费2个小时才解决。下面介绍下事情的起因,经过及最终的解决方案。
一、起因:
Ubuntu
终端显示为:
user@user-ThinkPad-T440p

@
前面部分为用户名,后面部分为主机名。
为了具有标识性,本人就想把用户名改为自己名字,即:
diudiu@user-ThinkPad-T440p

在网上经过一番查询后,采纳了修改/etc/passwd/etc/shadow两个文件中的”user”字符串为”diudiu”的方法,然后重启电脑,终端界面的显示修改成功。。

二、经过:
        
1)但是当使用sudo命令进行其他操作时提示 “diudiu不在sudoers文件中。此事将被报告。”若要解决此问题,则需要将diudiu加入/etc/sudoers文件中,设置同root具有一样的权限。如下所示:
#User privilege specification
root    ALL=(ALL:ALL)ALL
diudiu    ALL=(ALL:ALL)ALL

但是此时的用户diudiu已经丧失了超级用户权限,无法使用sudo或者su来修改/etc/sudoers文件。
       
2)于是在网上查询ubuntu中不使用超级权限的情况下如何进入root目录。发现ubuntu有一个recovery模式,可以直接进入root目录,但是试过之后发现:直接进入到recovery模式后,文件权限默认是只读,无法对文件进行写操作。
      
3)这时发现进入到recovery的单用户模式,可以获得修改文件的权限。
最终解决方案:
         
进入到recovery的单用户模式,获得文件的写权限,然后进行文件及root密码的修改等。具体步骤如下:

1)重启ubuntu系统,随即长按shirft进入grub菜单,按键盘上的↓键,选择“Ubuntu高级选项”,

2)选择recoverymode,用方向键将光标移至recoverymode选项,按"e"键进入编辑页面,注意此处不需要按下回车键。

3)将rorecoverynomodeset改为rwsingleinit=/bin/bash

4)按ctrl+x或者F10进入单用户模式,当前用户即为root。这个过程可能需要5分钟左右,耐心等待。这时候可以修改文件,将修改之前备份的文件passwdshadow拷贝到etc目录下,然后重启即可。

当然也可以使用“passwdroot”命令修改root权限的密码。


三、教训:
1)修改系统文件或者重要文件前一定要备份。
2ubuntu中修改某些东西时,最好使用命令进行,不要直接修改系统文件。
3)不清楚依赖关系的东西,不要随意去修改。








1 0