/etc/sudoers 文件已损坏,我无法通过 SSH 运行“pkexec visudo”

/etc/sudoers 文件已损坏,我无法通过 SSH 运行“pkexec visudo”

按照说明这里我得到:

pkexec visudo

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating as: Thomas,,, (tuc) 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.

我通过 ssh 执行此操作,因为我执行此操作的盒子用作没有屏幕的音乐服务器,并且很难访问。当我从 Ubuntu 14.04 升级到 16.04 时发生了这种情况。我尝试从另一个最近的 16.04 安装中复制 sudoers 文件,但由于 sudoers 文件,我无法这样做:

sudo mv ~/gyrf sudoers

>> /etc/sudoers: syntax error near line 36 <<<
>> /etc/sudoers: syntax error near line 37 <<<
>> /etc/sudoers: syntax error near line 38 <<<
>> /etc/sudoers: syntax error near line 39 <<<
>> /etc/sudoers: syntax error near line 40 <<<
>> /etc/sudoers: syntax error near line 41 <<<
>> /etc/sudoers: syntax error near line 42 <<<
>> /etc/sudoers: syntax error near line 43 <<<
>> /etc/sudoers: syntax error near line 44 <<<
>> /etc/sudoers: syntax error near line 45 <<<
>> /etc/sudoers: syntax error near line 46 <<<
>> /etc/sudoers: syntax error near line 47 <<<
>> /etc/sudoers: syntax error near line 48 <<<
>> /etc/sudoers: syntax error near line 49 <<< 
sudo: parse error in /etc/sudoers near line 36    
sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin

我应该去阁楼拿盒子试试吗pkexec visudo,还是这里还有别的问题?

答案1

我也遇到了这个问题,经过一番挖掘,找到了一个可行的解决方案。原始解决方案来自NixOS 的这个 github 问题作者:EstalillaJ。

  1. 打开两个与目标服务器的 ssh 会话。

  2. 在第一个会话中,通过运行以下命令获取 bash 的 PID:

    echo $$

  3. 在第二个会话中,使用以下命令启动身份验证代理:

    pkttyagent --process (pid from step 2)

  4. 回到第一个会话,运行:

    pkexec visudo

  5. 在第二个会话中,您将获得密码提示。visudo 将在第一个会话中启动。

答案2

我的回答基于 Satyen 的

已在 Debian 10.4 上测试没有运行 visudo 的能力

  1. 打开两个与目标服务器的 ssh 会话。

  2. 在第一个会话中,通过运行以下命令获取 bash 的 PID:

    echo $$

  3. 在第二个会话中,使用以下命令启动身份验证代理:

    pkttyagent --process (pid from step 2)

  4. 回到第一个会话,运行:

    pkexec su

  5. 在第二个会话中,您将获得密码提示。su 将在第一个会话中启动。

  6. 编辑 /etc/sudoers (CTRL+S 保存编辑,CTRL+X 退出)

    nano /etc/sudoers

相关内容