/ etc / sudoers file rusak dan saya tidak bisa menjalankan 'pkexec visudo' melalui SSH

14

Mengikuti instruksi di sini yang saya dapat:

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.

Saya melakukan ini melalui ssh karena kotak saya melakukan ini digunakan sebagai server musik tanpa layar dan agak tidak dapat diakses. Ini terjadi ketika saya memutakhirkan dari Ubuntu 14.04 ke 16.04. Saya mencoba menyalin file sudoers dari instalasi 16.04 baru-baru ini, tetapi saya tidak dapat melakukannya karena file 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

Haruskah saya mengambil kotak itu dari loteng dan mencoba pkexec visudoatau ada sesuatu yang salah di sini?

Thomas Ulrich Christiansen
sumber
AFAIK pkexechanya mengizinkan ini untuk pengguna lokal (bukan pengguna jarak jauh SSH) - jadi ya itu harus bekerja dari loteng
steeldriver
Entah dapatkan kotak, atau dapatkan drive, pasang di komputer lain dan edit sudoerssesuai. Tergantung pada apa yang termudah.
vidarlo
@steeldriverIt Itu hanya berfungsi untuk saya sebagai pengguna jarak jauh. JFYI.
php-coder

Jawaban:

44

Saya mengalami masalah ini juga dan dengan beberapa penggalian, menemukan solusi yang berfungsi. Solusi asli dari masalah github ini untuk NixOS oleh EstalillaJ.

  1. Buka dua sesi ssh ke server target.
  2. Di sesi pertama, dapatkan PID bash dengan menjalankan:

    echo $$

  3. Di sesi kedua, mulai agen otentikasi dengan:

    pkttyagent --process (pid from step 2)

  4. Kembali di sesi pertama, jalankan:

    pkexec visudo

  5. Di sesi kedua, Anda akan mendapatkan prompt kata sandi. visudo akan dimulai pada sesi pertama.

Satyen A.
sumber
5
Sial, Bung, kamu menyelamatkan hidupku! thx: D
Roger Barretto
1
itu gila, itu bekerja dengan sempurna! dan tidak perlu me-reboot sistem
undefinedman
1
Terima kasih banyak, ini benar-benar menyelamatkan saya! ⭑
Frederic
1
Menyelamatkan saya ** dari me-reboot server ke pemulihan, banyak bersorak!
SergeantSerk
1
Itu dude yang luar biasa! Seandainya aku bisa jawaban favorit juga!
Adrian