由于系统需求在修改/etc/sudoers文件时出现了语法错误,使用vim gedit等均无法打开/etc/sudoers文件,当时慌得一批,因为我感觉可能要凉了。
>>> /etc/sudoers: syntax error near line 27 <<<
sudo: parse error in /etc/sudoers near line 27
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
在经过一系列搜索后找到了最相似的问题和解决办法:
online@online-VirtualBox:~$ cd /etc/
online@online-VirtualBox:/etc$ pkexec visudo
但执行后出现了新的错误:
==== AUTHENTICATING FOR org.freedesktop.policykit.
exec ===Authentication is needed to run `/usr/sbin/visudo' as the super userAuthenticating as: ubuntu,,, (ubuntu)Password:polkit-agent-helper-1:
error response to PolicyKit daemon: GDBus.Error:org.freedesktop.
PolicyKit1.Error.Failed:
No session for cookie==== AUTHENTICATION FAILED
===Error executing command as another user:
Not authorizedThis incident has been reported.
在进行继续查找后发项了新大陆,解决了问题,方法如下: 1.基于当前系统同时打开两个窗口 2.第一个窗口执行如下命令获取Pid:
echo $$
3.切换到第二个窗口执行如下命令:(此时窗口会卡住,忽略)
pkttyagent --process +第一个窗口获取的pid
4.切换到第一个窗口执行:(此时窗口也会卡住,忽略)
pkexec visudo
5.切换回第二个窗口,会要求输入密码,输入系统的密码
6.切换回第一个窗口,可以看到visudo编辑界面,之后修改语法错误的地方,修改完后Ctrl+x保存
修改完后再次执行sudo vim /etc/sudoers可以正常进入该文件
|