/ 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 bash, запустивши:

    echo $$

  3. На другому сеансі запустіть агент аутентифікації з:

    pkttyagent --process (pid from step 2)

  4. Ще в першій сесії запустіть:

    pkexec visudo

  5. На другому сеансі ви отримаєте запит на введення пароля. visudo запуститься в першій сесії.


5
Святий чувак чувак, ти врятував мені життя! thx: D
Роджер Баретто

1
це божевільно, це працює ідеально! і не потрібно перезавантажувати систему
undefinedman

1
Дякую тонну, це мене справді врятувало! ⭑
Фредерік

1
Врятував мій ** від перезавантаження сервера до відновлення, привіт!
Сержантсерк

1
Це просто чудовий чувак! Хочеться, щоб я міг улюблені відповіді!
Адріан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.