• 首页
  • mac
  • 修改 mac /etc/sudoers 文件后 - sudo 命令不能用 报错syntax error near line

修改 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:

没有问题了.



回到顶部