记录一次比较弱智的行为,希望这篇文章到我为止,不要再有相同的人犯如此低级的错误
在服务器上,创建一个用户,希望将它加入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命令的界面,执行如下两步操作(顺序不能错):
1. mount -o remount,rw /
2. chmod 0440 /etc/sudoers
第五步
重启虚拟机,正常启动,这个时候ll /etc/sudoers
,但愿能看到你想要的效果。
网友评论