昨天一基友说他sudoers文件坏了,叫我拷贝给ta一份,由于自己操作不当,所以把自己的/etc/sudosers也给搞崩了。今天才恢复好,记录一下。
sudoers文件错误,运行sudo提示如下:
zcxaubuntu:~$ sudo
>> /etc/sudoers: syntax error near line 1 <<<
sudo:k parse error in letc sudoers near line1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
一、进入Linux系统root用户模式(注:如果忘记root密码,请自行百度进入单用户模式)
因为/etc/sudoers文件的权限是只读,所以需要进入root用户修改损坏sudoers文件的权限,不然复制不进去。
进入root用户模式
su root
查看/etc/sudoers的权限
ll /etc/sudoers
修改/etc/sudoers的权限
chmod 777 /etc/sudoers
二、将另外一个完整系统的sudoers文件拷贝
我使用的系统是Ubuntu18.04.6为了重新找到一模一样的系统去了阿里云重新下了一个同版本的ios镜像,然后在虚拟机上安装了。
(1)运行新系统将/etc/sudoers文件先复制到Desktop,然后直接拉出windows的桌面下(注意:如果虚拟机没有安装VMware Tools工具是没有Windows和虚拟机系统进行文件传输的功能的哦!)
cp -r /etc/sudoers /home/你的用户名/Desktop
如图:
(2)将Ubuntu桌面环境下的sudoers文件更改权限,不然无法传输。
sudo chmod 777 /home/你的用户名/Desktop/sudoers
然后可以通过桌面拖拉的方式直接拉到Windows环境下了。
(3)将sudoers文件复制已损坏的系统
可以看到两个系统我都打开了,现在直接把Windows桌面下的sudoers文件拉到已损坏的系统桌面下即可。
然后将其移到/etc目录下
cp -r /home/你的用户名/Desktop/sudoers
(4)运行sudo
发现提示了以下问题,不过莫慌。
sudo:sudo /etc/sudoers is world writable
sudo:no valid sudoers sources found ,quitting
sudo:unable to initialize policy plugin
解决方案:
sudoers的权限被改了,改回来就好了。
pkexec chmod 0440 /etc/sudoers
再次运行sudo,没问题。
参考连接:
https://blog.youkuaiyun.com/whatday/article/details/84784494/
有问题,下方留言,谢谢!