sudo 命令报错,如何修复 /etc/sudoers 文件?
发布于 作者:苏南大叔 来源:程序如此灵动~mac
环境,为了解决sudo
识别自定义命令的问题,按着网上的错误教程,苏南大叔错误地修改了sudo
的配置文件/etc/sudoers
。结果,悲剧就这么发生了,再使用sudo
命令的话,命令行报错。而修复文件/etc/sudoers
文件,又必须使用sudo
,基本上就是陷入死循环了。
本文描述的是:/etc/sudoers
这个文件的修复过程。测试环境是mac
,其它的类linux
系统也是有参考意义的。
正常的sudo
命令界面
正常情况下,sudo
命令界面如下:
如果您看到的界面不是类似这样的界面的话,就可能需要进行修复。请参考接下来的修复方案内容。
修改/etc/sudoers
的过程
苏南大叔,在这里并不推荐您修改这个/etc/sudoers
文件,因为这是非常危险的行为。如果您执意要修改这个文件,那么在修改之前,请注意备份相关文件。
文件备份命令:
cp /etc/sudoers /etc/sudoers_bak
正确的修改方式:
sudo visudo
错误的修改方式:
!!!这个修改方式是错误的修改方式!!!千万不要修改/etc/sudoers
的文件权限,改不回去!!!
chmod 777 /etc/sudoers
vi /etc/sudoers
chmod 440 /etc/sudoers
可能遇到的报错信息
苏南大叔再次警告您,这么做是十分危险的!修改之前,请做好思想准备!
错误地修改了文件内容,报错如下:
>>> /etc/sudoers: syntax error near line 46 <<<
sudo: parse error in /etc/sudoers near line 46
sudo: no valid sudoers sources found, quitting
错误地修改了文件权限,报错如下:
sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo
命令修复方案
要修复 /etc/sudoers
文件,必须使用 sudo
命令。要使用 sudo
命令,/etc/sudoers
文件就不能出错。先有鸡还是先有蛋?这是个悖论!
把 /etc/sudoers
文件搞坏掉之后,唯一的修复方案,就是:单用户模式。
第一步,进入单用户模式
进入单用户模式,操作过程是这样的:
然后会进入一个字体特别小的命令行界面,几千行指令从眼前瞬间飞过。
第二步,检测硬盘(可选)
有的教程会提示说,要执行硬盘检测命令。但是,这个命令可以跳过的。大家可以试试不执行这个问题。
/sbin/fsck -fy
回车后检测硬盘,要等待几分钟的样子。检测过程,大概会分为十个步骤操作。命令结束后,会有滴的声音提醒。
第三步,改为可写状态(必选)
这条命令是必须执行的,否则修改/etc/sudoers
文件的时候,会有read only
之类的错误提示。
/sbin/mount -uw /
这个时候,单用户模式已经获取到了可写权限,可以继续修复sudo
的配置文件/etc/sudoers
了。
第四步,具体修复过程
如果您的错误是:syntax error near line
。那么您需要修改/etc/sudoers
文件。
vi /etc/sudoers
如果您的错误是:/etc/sudoers is world writable
。那么您需要修改文件权限。
chmod 440 /etc/sudoers
第五步,重启生效
修改好之后,重启电脑即可。
reboot
总结
这个/etc/sudoers
文件是千万不能乱动的,它就是和selinux
一样,动了就很有可能会出各种各样的问题,修复的话,就会异常麻烦了。所以,大家请千万小心操作,如果您确定知道自己在做什么,那么再来操作这个/etc/sudoers
文件。
更多mac
经验技巧,请关注苏南大叔的博客文章:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
谢谢!
Ping
评论一下
work
看看
评论
以后再也不瞎搞了
看下 什么情况,感谢
不小心改错了sudoers,来看一下
keyi
kankanba
看看
评论一下
评论一下
评论下
看一下单用户模式
评论是一种美德
111111 激动的无以描述~
评论下