sudo: «эффективный uid не равен 0, sudo установлен setuid root?» на малине Pi

Я использую малину Pi в течение нескольких недель и уделяю много времени тому, чтобы настроить все для моего университетского проекта.

Я хотел установить Samba и иметь все как сетевую папку. Я использовал sudo chown -R pi:pi / .

Теперь мой sudo сломан и печатает sudo: effective uid is not 0, is sudo installed setuid root? каждый раз, когда я запускаю его (например, sudo nano ).

Может ли это быть отремонтировано? Пожалуйста, помогите мне, поэтому мне не нужно переустанавливать ВСЕ. Я даже не могу вспомнить, что я делал в прошлые недели … столько работы.

Запуск sudo chown -R pi:pi / основном нарушил право собственности на каждый файл в вашей системе.

К сожалению, переустановка, вероятно, самый простой вариант в вашем случае. Было бы очень утомительно и подвержено ошибкам пытаться восстановить правильные владельцы вручную (предположительно, используя другой компьютер). Я рекомендую визуализировать ваше хранилище малины Pi перед повторной установкой, чтобы после переустановки вы могли восстановить некоторые из сделанных вами изменений.

Бит setuid в исполняемом файле означает, что указанный файл может изменить его эффективный UID, который будет использоваться для пользователя-пользователя, а не для вызывающего / исполняющего пользователя.

При запуске sudo chwon -R pi:pi / вы сделали sudo принадлежащим пользователю pi (ненулевой UID), и поэтому, когда sudo проверяет, может ли он изменить свой эффективный UID на 0 ( root ), он видит, что он не может, потому что он больше не принадлежит root .

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

Самый простой способ – найти и сохранить все файлы, которые были изменены в «последние несколько недель», а затем переустановить и повторно применить изменения.

  1. Загрузите аварийный диск.
  2. Найти и сохранить «недавно» измененные файлы – cd /mnt/root && tar czvf /mnt/usb/tarball.tgz --newer-mtime='2015-10-01 00:00:00' . Убедитесь, что /mnt/root – это корень вашей системы Pi, а не корень аварийного диска, и что /mnt/usb где-то в безопасности, например, USB-накопитель
  3. Переустановка
  4. Восстановите сохраненные файлы – cd / && tar xzvf /root/tarball.tgz
  5. перезагружать