/ etc / sudoers 파일이 손상되어 SSH를 통해 'pkexec visudo'를 실행할 수 없습니다


14

여기 의 지시에 따라 얻을 수 있습니다 :

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를 통해이 작업을 수행하고 있습니다. 우분투 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여기에 다른 것이 있습니까?


AFAIK pkexec는 로컬 사용자 (SSH 원격 사용자가 아닌)에 대해서만이 기능을 허용 하므로 다락방에서 작동해야합니다.
— 스틸 드라이버

상자를 가져 오거나 드라이브를 가져와 다른 컴퓨터에 마운트하고 편집하십시오 sudoers. 가장 쉬운 것에 달려 있습니다.
— vidarlo 2016 년

@steeldriverIt 그것은 원격 사용자로 저에게 효과적이었습니다. JFYI.
— PHP-coder

답변:


44

나는이 문제에 부딪 쳤고 약간의 파고와 함께 작동하는 해결책을 찾았습니다. 원래 솔루션은 EstalillaJ의 NixOS 에 대한이 github 문제에서 나온 것입니다.

  1. 대상 서버에 대한 두 개의 ssh 세션을여십시오.
  2. 첫 번째 세션에서 다음을 실행하여 bash의 PID를 가져옵니다.

    echo $$

  3. 두 번째 세션에서 다음을 사용하여 인증 에이전트를 시작하십시오.

    pkttyagent --process (pid from step 2)

  4. 첫 번째 세션으로 돌아가서 다음을 실행하십시오.

    pkexec visudo

  5. 두 번째 세션에서는 비밀번호 프롬프트가 표시됩니다. 첫 번째 세션에서 visudo가 시작됩니다.


5
이런 젠장 친구, 내 인생을 구했어! thx : D
— Roger Barretto

1
그것은 미쳤다, 그것은 완벽하게 작동한다! 시스템을 재부팅 할 필요가 없습니다
— undefinedman

1
고마워, 이것은 정말로 나를 구했다! ⭑
— Frederic

1
서버를 다시 부팅하여 복구 할 때 a **가 절약되었습니다.
— 상사

1
그것은 단지 놀라운 친구입니다! 내가 좋아하는 답변도 좋겠다!
— Adrian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.