ubuntu误改sudoers权限之后的恢复

时间 : 16-10-25 栏目 : linux运维 作者 : 老薛 评论 : 4 点击 : 1,219 次

sudo 这个命令是ubuntu系统是用的最多的(和其他大众版linux系统比起来),而一个普通用户是否有sudo权限来临时切换到root用户来执行“一行”命令取决于 /etc/sudoers的配置,而sudoers这个诡异的文件又不能用常规的方式来修改。

所谓常规方式是什么呢,就是用chmod让可以操纵的用户获得写权限,修改完文件再将权限复原。可是sudoers这个文件默认权限是root的440:

-r--r----- 1 root root 4002 Mar  2  2012 /etc/sudoers

一旦把它的权限改成非440,就会出现sudo命令无法使用的情况。其他linux还好说,可ubuntu的root用户默认是禁用的啊,root用户用不了,sudo命令也用不了,纠结死了。若是别的文件还好说,偏偏这个文件权限一改就几乎稍微大点的事都干不了了。

这个时候只能进入单用户模式进行修复,ubuntu进入单用户模式的方式是重启选择恢复模式的选项进入(如果有多个系统,grub菜单会显示,这时选择恢复模式的选项进入即可;如果只有唯一的一个ubuntu系统,需要开机按shift让grub菜单显示出来),在短暂的加载之后就可以选择修复的选项了,这时选择root选项,这个就是以root单用户模式进入的方式。

用chmod将sudoers文件的权限改回440,之前可以sudo的用户就可以正常使用了:

 chmod 440 /etc/sudoers

如果出现Read-only file system的提示不让修改,可以重新挂载以解决:

mount -o remount rw /       #这个是重点,很好用的

这时也可以用passwd给root用户设置密码,以后再出现这样的乌龙就不需要重启进单用户模式了。但还是不推荐大家打开root用户,我觉得吧,存在的就是合理的,通过禁用root的方式来限制命令的影响范围是有一定必要的。

进入系统,正确的修改sudoers文件的方式其实已经卸载sudoers里了,就是使用visudo命令来修改这个特殊的文件。

## This file must be edited with the 'visudo' command.

应该使用有sudo权限的用户,执行:

sudo visudo

在root ALL=(ALL) ALL这行下面在写一行学着这行的格式,把需要使用sudo命令的用户加在里面,保存时覆盖掉源文件就可以了。

root ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL

好啦,问题解决。

希望大家引以为戒,下次遇到问题时要是找到这篇东拼西凑的文章也能快速解决问题。同时也给自己提个醒。

ubuntu误改sudoers权限之后的恢复

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw002/1954.html

ubuntu误改sudoers权限之后的恢复:目前有4 条留言

  1. 地板
    阿明
    Post: 2016-10-26 下午7:09

    :cool: 还有人跟我一样啊 :mrgreen:

    • admin
      admin
      Post: 2016-10-26 下午7:11

      惺惺相惜,难道

  2. 板凳
    小火山
    Post: 2016-10-26 下午7:13

    你们除了搞技术,不会还搞其它的吧 :grin:

  3. 沙发
    阿明
    Post: 2016-10-26 下午7:17

    上次我就是在新增用户,然后增加sudo权限的时候。没有标准visudo
    直接vim 编辑的sudoer文件,输错字母了,当时没发现,强制保存,结果,尴尬了。

发表评论

8 + 1 = ?


博主微信号,很高兴为您提供帮助

随便看看

4