前言

Ubuntu下,经常会用到sudo,但使用sudo会让输入密码。为了方便去修改/etc/sudoers文件,使sudo不用密码,这时候可能会导致sudo命令无法使用。
或者root添加用户之后没有给用户sudo权限,也会去修改/etc/sudoers文件,也会导致sudo命令无法使用。

报错log

一般情况下,我们只有ssh登录权限,修改sudo再使用会报如下错误:

1
2
3
4
5
6
7
8
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating 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 authorized
This incident has been reported.

解决方法

  1. 在ubuntu下打开两个ternimal
  2. 第一个终端输入echo $$,获取pid
  3. 第二个终端输入pkttyagent --process pid , pid为上一步获取的值
  4. 第一个终端输入pkexec visudo, 然后输入当前用户账号、密码
  5. 第二个终端出现了sudoers的内容,编辑需要修改的地方,然后保存退出即可

注意

上面使用的编辑器为nano,保存方式如下:
Linux下按Ctrl+x退出,修改了文件,会提示是否需要保存,按y回车即可,然后是文件名,不需要修改,直接回车就好,保存过程中的操作可以用ctrl+c来取消。

尊重版权,放原文链接