修改 mac /etc/sudoers 文件后 - sudo 命令不能用 报错syntax error near line
sudo 命令(substitute user do) 可以授权特定用户或用户组作为 root 或其他用户执行某些命令
例如普通用户不能在 /usr/local/bin/ 下创建目录,这是我们就可以在 mkdir 命令前加 sudo 来执行,他可以授权给我们root的权限执行此命令.
sudo 命令的运行依靠它的配置文件 /etc/sudoers
今天干了一件尴尬的事,就是我把 /etc/sudoers 配置文件修改了下,然后保存,结果发现修改出了错误,导致 sudo 命令无法运行,接着想改回来可就没有那么容易了....
因为此配置文件修改需要root权限,而我们的sudo 运行出错.所以尴尬的一幕上演了.
要修改 /etc/sudoers 文件,必须使用sudo 命令
要使用sudo 命令,/etc/sudoers 文件不能出错.
先有鸡还是先有蛋?
具体错误是这样的:
zhangzhi@moke:/etc$ sudo nano sudoers >>> /etc/sudoers: syntax error near line 46 <<< sudo: parse error in /etc/sudoers near line 46 sudo: no valid sudoers sources found, quitting
46行有错误,所以 sudo 命令无法使用.
google 到一种解决办法,分享一下:
重启系统,以单用户名模式登录(单用户指的就是root )
获取文件可写权限
修改 /etc/sudoers 文件,保存
最后重启mac
具体步骤:
重启电脑 ,屏幕未亮及按下 command + s 键 (一直不要放,大概要等几分钟的样子) 直到看到屏幕出现苹果白色 logo 放开建.
系统进入单用户模式,几千行指令从眼前飞过,不用关系.
当光标停止后,OK,这就告诉你已经 单用户模式登录进了系统 (注意,这时root 帐号只有可读模式,默认是可读模式)
往光标处向上大概 5,6 行代码处可以看到提示:
告诉你输入指令可以获取到可写模式,按照提示输入即可.
/sbin/fsck -fy
回车后检测硬盘,要等待几分钟的样子.
当光标停止等待输入状态后,接着输入:
/sbin/mount -uw /
OK,这时单用户模式已经获取到了可写权限.你可以修改sudo 的配置文件了.
nano /etc/sudoers
或者
vi /etc/sudoers
解决了配置文件中的错误,然后重启即可:
reboot
登录 mac 后验证一下 sudo 命令是否已好
zhangzhi@moke:~$ sudo nano ~/.bash_profile Password:
没有问题了.