Ошибка после sudo-ing «sudo: должен быть setuid root»

10

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

sudo: must be setuid root

Я пробовал разные вещи, упомянутые в интернете, такие как изменение разрешений на 4755 с live cd, но даже эта команда с live-cd

sudo chmod 4755 /media/device/usr/bin/sudo

выдает ту же ошибку.

РЕДАКТИРОВАТЬ: коллега сказал мне, что он выполнил эту команду, бог знает почему: /

sudo chmod -R 777 /или sudo chmod -R 777он не совсем уверен.

theTuxRacer
источник
Можете ли вы опубликовать вывод ls -l /usr/bin/sudo?
karthick87
Я не могу опубликовать это сейчас, я изменил разрешения, но это былоrwxrwxrwx root:root 2 sudo
theTuxRacer

Ответы:

14
  • Перезагрузите компьютер, выберите консоль восстановления и введите следующие команды

    chown root:root /usr/bin/sudo

    chmod 4755 /usr/bin/sudo

  • Перезагрузите машину.

  • Также посмотрите на эту ссылку для исправления сломанного sudo.

karthick87
источник
3
Посмотрите, как загрузить в режиме восстановления .
karthick87
2
Я смог сделать это, войдя в систему как root без консоли восстановления, если она у вас есть.
jocull
9

После выполнения sudo chmod -R 777 /рекомендую срочно переустановить всю систему с нуля. Команда открывает слишком много дыр в безопасности, так как любой и каждый файл в системе стал для чтения ( и записи! ) Любым пользователем - в том числе /etc/shadow, /etc/hostsи даже /usr/bin/sudoи /bin/lsсами! Ваша система может выглядеть как дуршлаг - каждая минута ее использования означает катастрофические риски и потери, особенно при подключении к Интернету. И фиксированные разрешения просто sudoничего не сделают.

Рассмотрим также этот вопрос .

ulidtko
источник
да, я также не могу подключить USB-накопители.
theTuxRacer
0

После того, как вы исправить разрешения на sudo, а затем использовать sudoвместе с тем же способом , чтобы рекурсивно исправить разрешения (тот же -Rпараметр , используемый завинтить всю систему , в первую очередь, только как chownи chmodкоманды) на /etc, /boot, /sbin, /bin, /dev, /proc, /sys, и /usr, Это должно смягчить проблемы безопасности, по крайней мере, до такой степени, что система будет использоваться.

С другой стороны, полная переустановка будет проще, если злоумышленник получит контроль над вашей системой (что он получит, если вы вообще подключены к Интернету, пока эти разрешения исправлены), поскольку было бы очень трудно вернуть этот контроль обратно. в противном случае.

realkstrawn93
источник
«(что они и будут…» Как бы это могло произойти, если бы я находился за брандмауэром? Вы преувеличиваете проблему или действительно просто легко захватить контроль над системой chmod 777?
Скотт,
0

Настолько же тяжелее восстановить все разрешения для файловой системы в состоянии установки «из коробки», что безопаснее и быстрее переформатировать разделы и переустановить систему, чем пытаться отменить

sudo chmod -R 777 /

команда. Система с разрешениями 777 (rwxrwxrwx) просто безнадежно сломана. Любое вредоносное ПО, которое атакует дыру в безопасности, позволяющую выполнять произвольный код через браузер, может изменять скрипты и исполняемые файлы, принадлежащие root, в то время как setuid, как sudo, не будет работать, если они проверяют разрешения исполняемого файла ...

Другими словами, в системе с общедоступными правами доступа 777 кеш браузера обрабатывается так же, как образ ядра. Просто бред.

На самом деле, sudo проверяет свои собственные разрешения, и они должны быть 4755 (rwsr-xr-x), но ваш друг сбросил разрешения на 0777 (rwxrwxrwx), что не позволяет запускать sudo, поскольку он запускает некоторые проверки безопасности перед запуском назначенного вами. команда.

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

Форматировать и переустанавливать - это самый безопасный способ, поскольку весь ваш диск должен быть помещен в карантин.

gmt42
источник