sudo: /usr/lib/sudo/sudoers.so повинен бути власником uid 0


10

Щоразу, коли я намагаюся робити щось, що вимагає мого пароля, він повертає це:

u7ur7l3@ubuntu:~$ sudo
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
u7ur7l3@ubuntu:~$

Тому я не можу нічого встановити з програмного забезпечення / менеджера пакетів або запустити будь-які команди в терміналі, для яких потрібен мій пароль. Я можу увійти, але це майже все.

Я випадково змінив дозволи деяких файлів, а потім змінив ще деякі, намагаючись це виправити: /. Тепер я повністю розгублений, що робити.

Так сталося, коли я спробував знову змусити судо працювати за допомогою pkexec:

u7ur7l3@ubuntu:~$ pkexec chown root /usr/lib/sudo/sudoers.so
Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success 

u7ur7l3@ubuntu:~$ sudo ls
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 sudo: fatal error, unable to load plugins

І для зміни дозволів я використовував Root Actions як службу / плагін дельфінів, тому історія не показує мені змін дозволу.

Я просто зрозумів, що звуки вже не працюють. Коли я заходжу в Phonon, мої настройки за замовчуванням та пристрої відтворення навіть не існують. Також у мене немає можливості відключення, я можу лише вийти з системи або вийти.


Чи проблема із звуком та вимкненням нова, оскільки ви виконали pkexecкоманду?
Елія Каган

@Eliah Kagan, ні я зрозумів, що проблема звуку є правильною, коли я ввійшов у свій комп’ютер, і зрозумів проблему вимкнення, коли я вимикав комп’ютер минулої ночі. Я в кінцевому підсумку просто натиснув кнопку живлення.
7UR7L3

Я розширив свою відповідь, щоб надати інструкції, які повинні працювати, навіть якщо не працюють і ні sudoPolicyKit (через pkexec).
Елія Каган

2
su root chown -R root: root / usr / lib /

Відповіді:


20

Право власності на принаймні один із важливих ваших системних файлів невірно. Це погано; якщо це трапилося з багатьма системними файлами (можливо, ви запустили велику sudo chownкоманду з -Rпрапором в якийсь момент?), це може спричинити ряд інших системних помилок та нестабільності. Тож якщо ви нещодавно встановили Ubuntu , можливо, ви захочете перевстановити, як пропонує Адам Хіткот .

Але вам не доведеться перевстановлювати, щоб виправити цю проблему . Замість цього просто зафіксуйте право власності на цей файл. Якщо після цього ви отримаєте помилки щодо інших файлів, ви також можете їх виправити (хоча вам, можливо, доведеться сказати, що таке повідомлення про помилки, тому ми також можемо розповісти, як їх виправити).

sudoне працює, але використовуючиsudo це один з двох способів для адміністраторів виконувати дії , як корінь на Ubuntu. Інший - Polkit (який раніше називався PolicyKit).

Запустіть цю команду, яка використовує Polkit (via pkexec) для зміни власності /usr/lib/sudo/sudoers.soназад на root(тобто uid 0):

pkexec chown root /usr/lib/sudo/sudoers.so

Потім спробуйте використовувати sudoще раз. Ви можете запустити щось тривіальне, як і побачити, чи з’являється повідомлення про помилку.sudo ls

Нарешті, я рекомендую запустити, historyщоб виявити всі команди, які ви виконуєте. Будемо сподіватися, що перелік усіх запущених команд, які змінили дозволи. Якщо припустити, що sudoзараз працює, я рекомендую опублікувати нове запитання, включаючи вихідний history, щоб отримати допомогу щодо скасування всіх зроблених вами прав власності на файли та змін дозволів.

Якщо pkexecне працює ні ...

Ви спробували, pkexecі це не вийшло. Оскільки sudoані Polkit не працює, щоб дозволити вам виконувати дії як root, вам доведеться перейти в режим відновлення та отримати кореневу оболонку. Для цього утримуйте клавішу Shiftпід час завантаження комп'ютера, щоб переконатися, що ви побачили меню завантаження GRUB. Виберіть запис, який містить режим відновлення слів (як правило, слід вибрати той, який знаходиться найближче до верху, у якому є ці слова). Тоді ви отримаєте меню, де у вас є ряд варіантів - виберіть варіант для переходу до кореневої оболонки.

Детальні інструкції щодо доступу до кореневої оболонки в режимі відновлення тут:

Щойно у вас є коренева оболонка, запустіть:

chown root /usr/lib/sudo/sudoers.so

Якщо ви отримаєте помилку про те, що файл або файлова система не змінюється, тоді перезавантажте його з переписанням:

mount -rw -o remount /

(Джерело для ідеї перерахунку та як це зробити: це здебільшого незв'язана відповідь .)

Потім, виконавши цю mountкоманду, запустіть вищезгадану chownкоманду ще раз і подивіться, чи працює вона.

Після закінчення режиму відновлення можна перезавантажити, виконавши:

reboot

sudoслід працювати, або хоча б дати якусь іншу помилку.

Нарешті, зауважте, що зважаючи на вказані вами помилки, ймовірно, що багато файлів зараз мають неправильне право власності чи дозволи. Було б ідеально, якби ви могли зрозуміти, які файли ви модифікували таким чином. Наприклад, якщо ви могли зрозуміти, що це всі файли в декількох конкретних папках, можливо, можливо виправити повну міру останніх проблем, які у вас виникли.

Перевстановлення, безумовно, є варіантом, але особливо, якщо все, що ви змінили, було право власності (а не дозволи, які дещо складніше реконструювати, оскільки вони відрізняються більше), слід мати можливість просто повернути дозволи до рекурсивно до своїх початкових власників (напевно, зазвичай, root ) і повністю повернути шкоду.

Повторна sudoробота - це перший крок. Сподіваємось, вищевказана методика дозволить вам це зробити.


Я дотримувався цих інструкцій, але коли я знову завантажився в kubuntu, проблема все ще існувала. Та сама помилка. На даний момент, мабуть, простіше просто перевстановити. : /
7UR7L3

Крім того, чи можна зробити щось подібне: askubuntu.com/questions/9135/…, щоб врятувати все? Всі разом як псевдо-баш сценарій не працюватимуть, бо
судо

@ 7UR7L3 Це дозволить створити резервну копію інформації про встановлені пакунки та більшість інформації про загальносистемні налаштування ваших програм. У поєднанні з повною резервною копією домашнього каталогу, яка повинна дозволяти вам відновити речі переважно такими, якими вони були, після видалення існуючої системи та встановлення нової, так. Переконайтеся, що завжди маєте резервну копію всіх справді важливих файлів (наприклад, ваших документів). Якщо вам здається, що вам потрібна додаткова інформація про цю техніку, застосовану до вашої ситуації, я пропоную опублікувати нове запитання (але я не заперечую, якщо ви запитаєте тут коментарі).
Елія Каган

Чи є хороший спосіб зробити все це? У мене є зовнішній накопичувач на 1 ТБ, на який можна створювати резервні копії, але він не з’явиться ніде, коли я його підключаю. Світло увімкнено, щоб показати, що він працює, але нічого на екрані не змінюється, і дельфіна немає ніде . Тоді як тільки я зроблю це, працюючи, як мені робити, щоб все зберегти на цьому. У менеджері пакунків я міг би зберегти встановлені пакети до текстового документа, але це дійсно все, що я вирішив зробити для збереження інформації. В основному всі інші рішення включають судо, яке все ще не працюватиме.
7UR7L3

@ 7UR7L3 Для резервного копіювання файлів? Завантажте з живого CD / DVD або живого USB. Ви можете отримати доступ до своїх файлів звідти і створити резервну копію на зовнішньому диску. Якщо ваш зовнішній накопичувач також не відображається в живій системі, то це абсолютно окрема проблема, з якою я, можливо, не зможу вам допомогти і майже напевно не міг би бути в межах коментарів. Тож якщо це станеться, я рекомендую розмістити нове запитання. Якщо ви прокоментуєте тут посилання на нове запитання, я обов’язково перегляну його і додам, якщо зможу.
Елія Каган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.