ไฟล์ / etc / sudoers เสียหายและฉันไม่สามารถเรียกใช้ 'pkexec visudo' ผ่าน SSH ได้


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 เนื่องจากกล่องที่ฉันทำนี้ใช้เป็นเซิร์ฟเวอร์เพลงที่ไม่มีหน้าจอและไม่สามารถเข้าถึงได้ สิ่งนี้เกิดขึ้นเมื่อฉันอัพเกรดจาก Ubuntu 14.04 เป็น 16.04 ฉันพยายามคัดลอกไฟล์ sudoers จากการติดตั้ง 16.04 ล่าสุด แต่ไม่สามารถทำได้เนื่องจากไฟล์ 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) - ดังนั้นใช่มันควรจะทำงานได้จากห้องใต้หลังคา
steeldriver

รับกล่องหรือรับไดรฟ์ติดตั้งในคอมพิวเตอร์เครื่องอื่นและแก้ไขsudoersให้เหมาะสม ขึ้นอยู่กับอะไรที่ง่ายที่สุด
vidarlo

@steeldriverIt มันใช้งานได้กับฉันในฐานะผู้ใช้ระยะไกล JFYI
php-coder

คำตอบ:


44

ฉันพบปัญหานี้ด้วยการขุดพบวิธีแก้ปัญหา วิธีการแก้ปัญหาเดิมมาจากปัญหา Github นี้สำหรับ NixOSโดย EstalillaJ

  1. เปิดสอง ssh เซสชันไปยังเซิร์ฟเวอร์เป้าหมาย
  2. ในเซสชั่นแรกรับ PID ของการทุบตีโดยการเรียกใช้:

    echo $$

  3. ในเซสชันที่สองให้เริ่มตัวแทนการรับรองความถูกต้องด้วย:

    pkttyagent --process (pid from step 2)

  4. ย้อนกลับไปในเซสชั่นแรกเรียกใช้:

    pkexec visudo

  5. ในเซสชั่นที่สองคุณจะได้รับพรอมต์รหัสผ่าน visudo จะเริ่มในเซสชั่นแรก


5
เพื่อนอึศักดิ์สิทธิ์ช่วยชีวิตฉันไว้! ขอบคุณ: D
Roger Barretto

1
มันบ้าแล้วมันทำงานได้สมบูรณ์แบบ! และไม่จำเป็นต้องรีบูตระบบ
undefinedman

1
ขอบคุณตันสิ่งนี้ช่วยฉันได้จริงๆ! ⭑
Frederic

1
บันทึก ** ของฉันจากการรีบูตเซิร์ฟเวอร์เป็นการกู้คืน
SergeantSerk

1
นั่นเป็นเพียงเพื่อนที่น่าทึ่ง! หวังว่าฉันจะได้คำตอบที่ชื่นชอบเช่นกัน!
เอเดรีย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.