欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

chmod 777 /etc/sudoers sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin 有大用 有大大用

记录一次比较弱智的行为,希望这篇文章到我为止,不要再有相同的人犯如此低级的错误

在服务器上,创建一个用户,希望将它加入root组,拥有root权限,所以使用了一个错误的行为,首先chmod 777 /etc/sudoers给这个文件所有权限,首先这个命令本身就比较弱智,因为在服务器上,很少有情况需要将一个文件的所有权限都给到。很自信的执行命令之后,傻眼了,这台服务器上的所有用户都失去了sudo权限,当执行sudo的时候出现以下错误:

sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

它告诉你sudoers这个文件是全局可写的,不允许你执行这个操作,因为它毫无安全性可言,其次,也是最关键的,正常人的思维是再把权限修改回去不就OK了,但是etc是普通用户无法切入的,所以普通用户无法修改这个文件的权限。更要命的是,执行了网上各种解决方案,都需要知道root用户的密码,问题是我怎么知道。悲剧了。。。。

不幸中的万幸,我们这台服务器在自己本地


解决方案

第一步

重启服务器,长按esc键,进入linux启动界面,这个时候会看到以下选项:

ubuntu
Advanced options for Ubuntu

选择Advanced options for Ubuntu,回车;

第二步

接下来会进入另一个界面,如下所示:

Ubuntu, with Linux 4.4.0-38-generic
Ubuntu, with Linux 4.4.0-38-generic(recovery mode)

选择Ubuntu, with Linux 4.4.0-38-generic(recovery mode)  模式;

第三步

接下来会进入另一个页面,Recovery Menu(filesystem state: read-only)
选择root,然后回车。

第四步

这时候会在底部出现shell命令的界面,执行如下两步操作(顺序不能错):

(如果是mac 进入 recovery模式,那么进入磁盘工具=>看磁盘(卷)的路径, 找到路径 进行 chmod 440 sudoers)


1. mount -o remount,rw /
2. chmod 0440 /etc/sudoers 

第五步

重启虚拟机,正常启动,这个时候ll /etc/sudoers,但愿能看到你想要的效果。



作者:wolf4j
链接:https://www.jianshu.com/p/2c73f7bbef0d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


来自  https://www.jianshu.com/p/2c73f7bbef0d

普通分类: