/ 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.