/ usr / bin / sudo должен принадлежать uid 0 и иметь установленный бит setuid [дубликат]

Я случайно выполнил следующую команду

sudo chown [username] -hR /

Теперь sudo su появляется ошибка:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

Как это решить?

106
задан 22 April 2014 в 18:14

8 ответов

Создайте резервную копию данных и переустановите.

Возможно, это выглядит чрезмерно, но это не только sudo . Вы уничтожили структуру разрешений всей файловой системы. Некоторые другие ответы могут заставить работать sudo , но игнорирование всей проблемы влечет за собой более позднюю катастрофу.

Вы можете попытаться отразить владельцев другой установки, но есть случаи ( / var / например), которые сильно зависят от того, что вы на самом деле установили. Если вы хотите получить масштаб проблемы, Я действительно умел помогать кому-то решить эту проблему до . Исправление выполняется вручную, долго и может легко сделать вашу систему небезопасной или сломанной.

Устранение этого беспорядка займет значительно больше времени, чем чистая установка.


Это было несколько замечаний от людей, которые этого не делали. Не понимаю серьезности ситуации здесь. Для них это выглядит как большая куча ненужной работы, что-то вроде того, что говорит водопроводчик или механик, чтобы заставить вас встряхнуть для более серьезной работы.

Если вы только изменили разрешения на / usr / bin / sudo , просто исправьте это. Но этот вопрос касается полного изменения системы. Каждый файл (за исключением файлов, предназначенных только для времени выполнения) теперь принадлежит пользователю. Все, что запускает пользователь (например, браузеры, эксплойты браузеров ), может затем перезаписывать системные файлы, шпионить за вами, извлекать любые данные. Это нужно исправить. Как указано выше, это сложно. Самый простой способ - переустановить.

Так что, пожалуйста, не ленитесь.Разрешения файловой системы помогут вам обезопасить себя, исправьте их.

41
ответ дан 22 April 2014 в 18:14

Как вы прочтете в этот ответ на SO , эта проблема не так сложна, как люди ее решают. Вы можете снова запустить команду sudo без переустановки , выполнив следующие простые шаги:

  1. Выйдите из системы как текущий пользователь, а затем снова войдите в систему как root.
  2. Выполнить chown root: root / usr / bin / sudo && chmod 4755 / usr / bin / sudo
  3. Выйдите из системы как пользователь root, а затем войдите снова как текущий пользователь.

Это помогает и намного быстрее и менее болезненен, чем "ядерный вариант", рекомендованный в других ответах.

Если ваш пароль root не установлен, вы можете загрузиться в режиме восстановления , чтобы установить его.

Обратите внимание, что это решит проблему титульная ошибка / usr / bin / sudo должен принадлежать uid 0 и иметь установленный бит setuid , но, как и OP, вы сделали больше, чем испортили разрешения для / usr / bin / sudo , более «ядерный» вариант может иметь больше смысла.

171
ответ дан 22 April 2014 в 18:14

К сожалению, если у вас нет полной резервной копии, вероятно, лучшее, что вы можете сделать на этом этапе, - это переустановить.

Учтите, что вы изменили права собственности на все файлы на те же пользователь, полностью испортил парадигму безопасности вашей системы ....

Если вы выполните поиск по этому сайту, обнаружите много похожих проблем с chmod, например Как я могу восстановить с chmod -R a-wrx / команда?

3
ответ дан 22 April 2014 в 18:14

Вышеуказанные методы у меня не сработало, потому что я не мог «войти в систему как root» (неизвестный пароль) Но я получил корневую оболочку, отредактировав

vi /etc/lightdm/lightdm.conf

autologin-user=root
greeter-show-manual-login=true

. После перезагрузки я наконец смог запустить

chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
3
ответ дан 22 April 2014 в 18:14

Мне не удалось отредактировать файл lightdm.conf в работающей системе. Я исправил такие вещи:

  1. boot Ubuntu live usb
  2. смонтируйте корневой раздел, чтобы получить доступ к /etc/lightdm/lightdm.conf в установке
  3. sudo -H gedit / mnt /etc/lightdm/lightdm.conf и добавьте следующие строки из ответа Anno2001

     autologin-user = root
    greeter-show-manual-login = правда
     
  4. перезагрузка

  5. команда запуска:

     chown root: root / usr / bin / sudo && chmod 4755 / usr / bin / sudo
     
  6. Сменить пользователя по умолчанию в /etc/lightdm/lightdm.conf (вы не хотите каждый раз автоматически входить в систему как root, что было бы очень небезопасно и опасно)

  7. перезагрузка, и мой система снова работает нормально.
1
ответ дан 22 April 2014 в 18:14
  • 1
    Groda Michl, обеспечьте свой пример кода из Вашего test.php файла –  20 October 2015 в 00:39
  1. перейдите в режим восстановления, удерживая нажатой Esc во время загрузки системы.

  2. выберите корневой параметр в длинном списке, который вы можете увидеть после входа в режим восстановления (на самом деле это root shell)

  3. команда типа - mount -o remount / (Или при восстановлении вы можете выбрать параметр grub. Это помогло мне получить разрешения на чтение и запись в файловой системе. Это в основном обновило чтение / режим записи в файловой системе, так как команда изначально не работала для меня)

    Она перемонтирует вашу файловую систему в режиме чтения и записи.

  4. команда - chown -R root: root / usr эта команда рекурсивно сменит владельца с "user" на root

  5. , теперь у меня все еще была проблема с командой sudo , поэтому я снова выполнил шаги 1,2,3 и выполнил chmod 4755 / usr / bin / sudo

Теперь я действительно думаю, что переустановка была бы действительно "ядерным вариантом"

19
ответ дан 22 April 2014 в 18:14

Я сменил / usr / lib / на root-владельца, но sudo выполняется только с root-логином в терминале.

шаг первый: su root шаг второй: cd / usr / lib шаг третий: chown -R root: root sudo

и все. Просто ВНИМАНИЕ: вы должны запускать su root каждый раз, когда хотите использовать sudo.

-2
ответ дан 22 April 2014 в 18:14

Была такая же проблема с моей каплей в цифровом океане.

sudo: / usr / bin / sudo должен принадлежать uid 0 и иметь setuid бит установлен. Ниже приведены команды, которые выполняются и перезагружаются после.

chown -R root:root /usr/bin/sudo
chmod -R a=rx,u+ws /usr/bin/sudo
chown -R root:root /usr/lib/sudo/sudoer.so
chmod -R a=rx,u+ws /usr/lib/sudo/sudoer.so

Надеюсь, это поможет.

7
ответ дан 22 April 2014 в 18:14

Другие вопросы по тегам:

Похожие вопросы: